Mockito의 doReturn()과 when()의 차이점 이해
Spring MVC 애플리케이션을 개발하는 동안 Mockito를 사용하여 서비스 계층을 모의합니다. 객체는 일반적인 관행입니다. Mockito의 기능을 탐색하는 동안 doReturn(...).when(...) 및 when(...).thenReturn(...)이 모두 동일한 기능을 수행하는 것으로 보인다는 것이 분명해졌습니다. 그러면 다음과 같은 질문이 생깁니다. 이 두 메서드 사이에 차이점이 있습니까?
doReturn()과 when()의 주요 차이점은 모의 객체(@ 주석이 달린 객체) 대신 스파이 대상 객체(@Spy 주석이 달린 객체)를 사용할 때 분명해집니다. Mock).
doReturn()과 Spied의 when() 비교 객체
예
다음 코드를 고려하세요.
public class MyClass { protected String methodToBeTested() { return anotherMethodInClass(); } protected String anotherMethodInClass() { throw new NullPointerException(); } }
테스트 케이스:
@Spy private MyClass myClass; // Works fine, does not invoke anotherMethodInClass() doReturn("test").when(myClass).anotherMethodInClass(); // Throws NullPointerException because anotherMethodInClass() is invoked when(myClass.anotherMethodInClass()).thenReturn("test");
요약하자면, 스파이 개체를 사용할 때, doReturn()을 사용하면 메서드 실행을 건너뛰고 반환 값을 직접 설정할 수 있으며, when()은 원하는 값을 반환하기 전에 실제 메서드를 호출합니다. Mockito에서 스파이 개체를 작업할 때 이러한 이해가 중요합니다.
위 내용은 Mockito의 doReturn()과 when(): 스파이 대상 개체를 사용할 때의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!