Mockito 활용: DoReturn() 대 When()
Mockito 영역에서는 두 가지 메서드가 명백한 유사성을 가지고 나타납니다. ) 및 언제(). 둘 다 객체 모의 기능을 촉진하여 쿼리를 촉발합니다. 두 가지 유사한 방법이 필요한 이유는 무엇입니까?
답은 스파이 대상 객체(@Spy 주석 처리)와 모의 객체(@Mock 주석 처리)와 함께 사용할 때의 동작에 있습니다. ). 모의 객체와 달리 스파이 대상 객체는 자신이 확장한 클래스의 실제 메서드 구현을 유지합니다.
When() thenReturn()은 지정된 반환 값을 대체하기 전에 원래 메서드를 호출합니다. 따라서 메서드에서 발생한 예외는 테스트 내에서 처리되어야 합니다. 예를 들어
@Spy private MyClass myClass; // Continues executing the actual method, potentially throwing an exception when(myClass.anotherMethodInClass()).thenReturn("test");
DoReturn() when()은 반면에 메서드 호출을 모두 가로챕니다. 이렇게 하면 원래 메서드가 실행되는 것을 방지하고 예외가 발생할 위험이 제거됩니다.
// Bypasses the actual method call, returning the specified value doReturn("test").when(myClass).anotherMethodInClass();
스파이 개체로 작업할 때는 이러한 차이점을 이해하는 것이 중요합니다. 스파이 메서드가 오류를 유발할 수 있는 상황에서 doReturn()은 when()에 대한 안전한 대안을 제공하여 원활한 테스트 환경을 보장합니다.
위 내용은 Mockito 조롱: When() 대 doReturn() – 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!