>Java >java지도 시간 >Mockito를 사용하여 비결정적 응답을 어떻게 테스트할 수 있습니까?

Mockito를 사용하여 비결정적 응답을 어떻게 테스트할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-28 04:47:30986검색

 How Can I Test Nondeterministic Responses with Mockito?

Mockito로 비결정적 응답 테스트

비결정적 서비스와 상호 작용하는 코드를 테스트할 때 결과가 관계없이 일정하게 유지되는지 확인하기 어려울 수 있습니다. 메소드의 반환 순서. 예를 들어, ExecutorCompletionService를 사용하여 작업을 그룹화하고 처리하는 다음 코드를 테스트해 보세요.

<code class="java">ExecutorCompletionService<T> completionService = new ExecutorCompletionService<>(service);

for (Callable<T> t : ts)
    completionService.submit(request);

for (int i = 0; i < calls.size(); i ++) {
    try {
        T t = completionService.take().get();
        // do some stuff that I want to test
    } catch (...) { }        
}</code>

이 문제를 해결하기 위해 Mockito는 다른 개체를 반환하도록 메서드의 후속 호출을 구성하는 수단을 제공합니다. thenReturn 메서드를 사용하면 반환할 객체를 순서대로 지정할 수 있습니다.

<code class="java">when(method-call).thenReturn(value1, value2, value3);</code>

각 값은 순차적으로 반환되며, 다른 모든 값이 소진되면 마지막 값이 반복적으로 사용됩니다. 이를 통해 다양한 시나리오를 테스트하고 반품 순서에 관계없이 결과가 일관되게 유지되는지 확인할 수 있습니다.

위 내용은 Mockito를 사용하여 비결정적 응답을 어떻게 테스트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.