Mockito를 사용하여 슈퍼클래스에서 특정 메서드 호출만 모의하기
Mockito를 사용하여 단위 테스트를 수행할 때 특정 메서드 호출만 모의해야 할 수 있습니다. 다른 호출은 영향을 받지 않고 그대로 두고 슈퍼클래스 내의 메서드를 호출합니다. 다음 시나리오를 고려하십시오.
<code class="java">class BaseService { public void save() {...} } public Childservice extends BaseService { public void save(){ //some code super.save(); } }</code>
이 예에서는 다른 save() 메소드 호출의 동작을 유지하면서 ChildService 클래스 내에서 super.save()에 대한 호출만 모의 처리하려고 합니다.
스파이 및 스터빙을 사용한 솔루션
리팩토링이 실행 가능한 솔루션일 수 있지만 항상 가능한 것은 아닙니다. 이러한 경우 감시 및 스터빙 기술을 활용하여 원하는 조롱 동작을 달성할 수 있습니다.
<code class="java">@Test public void testSave() { ChildService classToTest = Mockito.spy(new ChildService()); // Prevent/stub logic in super.save() Mockito.doNothing().when((BaseService)classToTest).validate(); // When classToTest.save(); // Then verify(classToTest).load(); }</code>
설명:
스파이 및 스터빙을 사용하면 원하는 모의 동작을 효과적으로 시뮬레이션하여 특정 메서드 호출을 테스트할 수 있습니다. 원래 기능을 유지하면서 슈퍼클래스 내에서.
위 내용은 Mockito를 사용하여 슈퍼클래스의 특정 메서드 호출만 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!