[java] Mockito를 사용하여 특정 메소드를 호출할 때 지연 시간을 설정하는 방법은?
import static org.mockito.Mockito.*;
...
// 특정 클래스의 Mock 객체 생성
MyClass myClassMock = mock(MyClass.class);
// 특정 메소드의 호출에 대해 지연 시간 설정
when(myClassMock.myMethod()).thenAnswer(invocation -> {
Thread.sleep(1000); // 1초의 지연 시간 설정
return null; // 호출 결과 반환
});
// 메소드 호출 시 지연 시간이 설정된 Mock 객체가 반환됨
MyClass myClass = myClassMock.myMethod();
// 지연 시간이 적용된 메소드 호출 결과 확인
// 이 시점에서 1초의 지연 시간이 발생하고, null이 반환됨
System.out.println(myClass);
위의 코드에서는 MyClass
라는 클래스의 myMethod()
메소드가 호출될 때 1초의 지연 시간을 설정하는 방법을 보여줍니다.
mock()
함수를 사용하여 MyClass
의 Mock 객체를 생성한 후, when()
함수와 thenAnswer()
함수를 사용하여 myMethod()
메소드에 대한 지연 시간 설정을 정의합니다. thenAnswer()
함수 내에서 Thread.sleep(1000)
을 사용하여 1초 동안의 지연 시간을 설정하고, 이후에는 호출 결과로 null
을 반환하도록 설정합니다.
마지막으로 myMethod()
를 호출하면 설정된 지연 시간이 적용된 Mock 객체가 반환되며, 1초의 지연 시간이 발생한 후 null
이 출력됩니다.
위의 예제 코드에서는 Java를 사용하고 있으며, Mockito를 활용하여 특정 메소드 호출에 대한 지연 시간 설정을 보여주고 있습니다.
더 자세한 내용은 Mockito의 공식 문서를 참조하시기 바랍니다. (https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html)