[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 예외를 발생시키지 않고 테스트하는 방법은?

가정:

다음은 Mockito를 사용하여 이를 수행하는 방법입니다:

  1. Mockito 라이브러리를 프로젝트에 추가합니다. Maven을 사용한다면, pom.xml 파일에 다음 의존성을 추가하세요:
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.12.4</version>
    <scope>test</scope>
</dependency>
  1. 테스트 클래스에서 Mockito를 가져옵니다:
import static org.mockito.Mockito.*;
  1. TestClass의 인스턴스를 만듭니다:
TestClass testObj = new TestClass();
  1. TestClass를 Mock 객체로 만듭니다:
TestClass mockedObj = mock(TestClass.class);
  1. methodB에서 예외가 발생하지 않도록 Mockito의 doNothing() 메소드를 사용합니다:
doNothing().when(mockedObj).methodB();
  1. methodA를 호출하고, methodB가 예외를 발생시키지 않는지 확인합니다:
mockedObj.methodA(); // methodB에서 발생하는 예외를 발생시키지 않음
  1. 예외가 발생하지 않는지를 검증하기 위해 Mockito의 verify() 메소드를 사용합니다:
verify(mockedObj, times(1)).methodB(); // methodB가 정확히 한 번 호출되었는지 검증

이와 같은 방법으로 Mockito를 사용하여 특정 메소드가 예외를 발생시키지 않고 호출되는지 테스트할 수 있습니다. Mock 객체를 사용하여 실제 객체의 동작을 제어하고 예외 상황을 시뮬레이션할 수 있습니다.

참고 문서: