백엔드/java

Junit 단위테스트

가든링 2022. 3. 31. 16:50

>> Java단위테스트시 필요한 라이브러리

1. JUnit5 : 자바 단위 테스트를 위한 테스트 프레임워크

2. AssertJ : 자바 테스트를 돕기 위해 다양한 문법을 지원하는 라이브러리

 

 

>> 패턴(given/when/then)

- given (준비) : 어떤 데이터가 준비됐을때

- when (실행) : 어떤 함수를 실행하면

- then (검증) : 어떤 결과가 나와야한다.

 

1. given

- 테스트를 위해 준비하는 과정

import org.junit.Test;

import static org.junit.Assert.*;

//테스트 클래스는 반드시 public으로 선언해야함
//test클래스명+Test
public class CalculatorTest {
    
    @Test
    public void sum() {
    	//given
        Calculator calculator = new Calculator();
        
    }
}

 

2. when

- 실제로 액션을 하는 테스트 실행하는 과정

- when은 가장 중요한 구문이지만 가장 짧음. 보통 한 줄

import org.junit.Test;

import static org.junit.Assert.*;

//테스트 클래스는 반드시 public으로 선언해야함
//test클래스명+Test
public class CalculatorTest {
    
    @Test
    public void sum() {
    	//given
        Calculator calculator = new Calculator();
        //when
        int result = calculator.sum(2, 4);

    }
}

 

3. then

-  테스트를 검증하는 과정. 

- 예상한 값, 실제 실행을 통해서 나온 값을 검증

import org.junit.Test;

import static org.junit.Assert.*;

//테스트 클래스는 반드시 public으로 선언해야함
//test클래스명+Test
public class CalculatorTest {
    
    @Test
    public void sum() {
    	//given
        Calculator calculator = new Calculator();
        //when
        int result = calculator.sum(2, 4);
        //then
        assertEquals(6, result);

    }
}

>> @Test

단위테스트임을 명시하는 어노테이션.

 

 

>> 예시

public class Calculator {
    public int sum(int num1, int num2){
        return num1+num2;
    }
}

 

import org.junit.Test;

import static org.junit.Assert.*;

//테스트 클래스는 반드시 public으로 선언해야함
//test클래스명+Test
public class CalculatorTest {
    
    @Test
    public void sum() {
        Calculator calculator = new Calculator();
        int result = calculator.sum(2, 4);
        assertEquals(6, result);

    }
}

 

>> assert 주요 메서드

주요 메서드 설명
assertArrayEquals(a,b) 배열 a,b가 일치함을 확인
assertEquals(a,b) 객체a,b의 값이 일치함을 확인
assertSame(a,b)  두객체가 동일한지 확인
assertTrue(a)  조건a가 참인지 확인
assertNotNull(a)  객체a가 null이 아님을 확인