[java] JUnitParams와 Mockito를 함께 사용하는 방법은 어떻게 되나요?

JUnitParams와 Mockito는 자바에서 유닛 테스트를 작성하는 데 도움을 주는 인기 있는 라이브러리입니다. JUnitParams는 매개 변수화된 테스트 케이스를 작성할 수 있게 해주고, Mockito는 가짜 객체를 생성해 테스트 대상과의 상호작용을 검증하는 데 사용됩니다.

이 두 라이브러리를 함께 사용하면 테스트 코드를 더 쉽게 작성하고 유지보수할 수 있습니다. 아래는 JUnitParams와 Mockito를 함께 사용하는 간단한 예제 코드입니다.

import static org.mockito.Mockito.*;

import org.junit.Test;
import org.junit.runner.RunWith;

import junitparams.JUnitParamsRunner;
import junitparams.Parameters;

@RunWith(JUnitParamsRunner.class)
public class ExampleTest {

    @Test
    @Parameters({
        "3, 2, 5",
        "4, 6, 10",
        "8, 7, 15"
    })
    public void testAdd(int a, int b, int expected) {
        // 가짜 객체 생성
        Calculator calculator = mock(Calculator.class);

        // 가짜 객체의 메서드 호출 결과 지정
        when(calculator.add(a, b)).thenReturn(expected);

        // 테스트 대상 호출
        int actual = calculator.add(a, b);

        // 검증
        verify(calculator).add(a, b);
        assertEquals(expected, actual);
    }
}

위 예제 코드에서는 ExampleTest라는 테스트 클래스를 작성했습니다. @RunWith(JUnitParamsRunner.class) 애너테이션을 사용하여 JUnitParams를 사용하고, @Parameters 애너테이션을 사용하여 테스트 케이스의 매개 변수를 설정했습니다.

testAdd라는 테스트 메서드는 매개 변수로 a, b, expected를 받아 테스트를 수행합니다. 테스트 코드 안에서는 Mockito를 사용하여 Calculator라는 가짜 객체를 생성하고, when을 사용하여 add 메서드의 결과를 지정했습니다. 그 후, 테스트 대상인 calculator.add(a, b)를 호출하고 결과를 검증합니다.

이와 같이 JUnitParams와 Mockito를 함께 사용하여 테스트 코드를 작성하면, 매개 변수화된 테스트 케이스를 작성하고 관련된 객체의 동작을 가짜 객체를 통해 검증할 수 있습니다.