[java] Mockito와 Hamcrest를 함께 사용하여 테스트 결과를 검증하는 방법은?
Mockito는 자바에서 사용되는 인기있는 mocking 프레임워크인 반면, Hamcrest는 풍부한 매처(matcher) 라이브러리입니다. 두 프레임워크를 함께 사용하면 테스트 코드에서 좀 더 가독성 있고 간결한 검증을 할 수 있습니다.
우선, 테스트 대상 Mockito 모의 객체를 생성하고 메서드를 호출한 결과를 얻습니다. 그런 다음, Hamcrest 매처를 사용하여 예상 결과와 실제 결과를 검증합니다. 아래는 Mockito와 Hamcrest를 함께 사용하여 테스트 결과를 검증하는 예시입니다:
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
public class MyTest {
@Mock
private MyService myService;
@Test
public void testMyMethod() {
// Mockito 모의 객체 생성
myService = Mockito.mock(MyService.class);
// Mockito.when을 사용하여 메서드 호출 결과 설정
Mockito.when(myService.myMethod()).thenReturn("expectedResult");
// Hamcrest 매처를 사용하여 결과 검증
assertThat(myService.myMethod(), is("expectedResult"));
}
}
위의 예시에서는 MyService 클래스의 myMethod() 메서드의 반환값을 “expectedResult”로 설정하고, Hamcrest의 is()
매처를 사용하여 예상값과 실제값을 비교하고 있습니다. 만약 조건이 복잡해질 경우, Hamcrest의 다른 매처들을 사용하여 좀 더 다양한 검증을 수행할 수 있습니다.
이렇게 Mockito와 Hamcrest를 함께 사용하여 테스트 결과를 검증하면, 가독성이 좋고 유지보수가 용이한 테스트 코드를 작성할 수 있습니다.
참고 자료: