>Java >java지도 시간 >Mockito 조롱: When() 대 doReturn() – 언제 어느 것을 사용해야 합니까?

Mockito 조롱: When() 대 doReturn() – 언제 어느 것을 사용해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-07 14:11:16386검색

Mockito Mocking: When() vs. doReturn() – When Should I Use Which?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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