Mockito는 자바에서 유닛 테스트를 작성할 때 많이 사용되는 모의 객체 프레임워크입니다. 이를 사용하여 특정 조건에 따라 다른 동작을 하는 메소드를 테스트할 수 있습니다. 아래는 Mockito를 사용하여 특정 조건에 따라 다른 동작을 하는 메소드를 테스트하는 방법을 설명한 예제 코드입니다.
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import org.junit.Test;
public class ExampleTest {
@Test
public void testMethod() {
// 모의 객체 생성
Example example = mock(Example.class);
// 특정 조건에 따른 동작 정의
when(example.method(anyInt())).thenAnswer(invocation -> {
int argument = invocation.getArgument(0);
if (argument > 10) {
return "조건 충족";
} else {
throw new IllegalArgumentException("조건 불충족");
}
});
// 메소드 호출 및 결과 검증
String result = example.method(15);
assertEquals("조건 충족", result);
// 다른 조건에 대한 실행 흐름 검증
assertThrows(IllegalArgumentException.class, () -> example.method(5));
}
}
위의 예제 코드에서는 Example
클래스의 method
메소드를 테스트하고 있습니다. Example
클래스는 특정 조건에 따라 다른 동작을 수행하는 것을 가정하고 있습니다.
mock(Example.class)
를 사용하여 Example
클래스의 모의 객체를 생성합니다. 그리고 when(example.method(anyInt()))
을 사용하여 method
메소드가 호출될 때의 동작을 정의합니다. 이 예제에서는 method
메소드의 인자가 10보다 클 경우 “조건 충족”을 반환하고, 10보다 작거나 같을 경우 IllegalArgumentException
을 던지도록 정의되어 있습니다.
assertEquals("조건 충족", result)
를 사용하여 method
메소드의 결과가 “조건 충족”인지 검증합니다. 또한 assertThrows(IllegalArgumentException.class, () -> example.method(5))
를 사용하여 method
메소드가 10보다 작은 인자로 호출될 때 IllegalArgumentException
이 발생하는지 검증합니다.
이와 같이 Mockito를 사용하면 특정 조건에 따라 다른 동작을 하는 메소드를 테스트할 수 있습니다.