>  기사  >  Java  >  Mockito는 추상 클래스 테스트를 어떻게 단순화할 수 있습니까?

Mockito는 추상 클래스 테스트를 어떻게 단순화할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 18:48:30554검색

How Can Mockito Simplify Testing Abstract Classes?

Mockito로 추상 클래스 모의

추상 클래스 테스트는 특히 수동 모의 생성을 고려하는 경우 어려울 수 있습니다. 그러나 Mockito를 활용하면 대체 접근 방식이 제공됩니다.

Answers.CALLS_REAL_METHODS가 포함된 Mockito.mock()

수동으로 모의 클래스를 구성하는 대신 Mockito의 mock() 메서드를 사용할 수 있습니다. Answers.CALLS_REAL_METHODS 인수와 함께 활용됩니다. 이 옵션은 추상 클래스에서 상속하고 이를 명시적으로 구현하지 않고도 실제 메서드를 테스트할 수 있는 모의 클래스를 생성합니다.

예:

추상 클래스 My를 고려하세요. 테스트 methodUnderTest() 아래의 메서드와 추상 메서드 methodIDontCareAbout(). 다음 코드 조각은 이 접근 방식을 사용하여 methodUnderTest()를 테스트하는 방법을 보여줍니다.

<code class="java">@Test
public void shouldFailOnNullIdentifiers() {
    My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
    Assert.assertSomething(my.methodUnderTest());
}</code>

이 예에서 Mockito.mock(My.class, Answers.CALLS_REAL_METHODS)는 실제 테스트를 허용하는 My의 모의 인스턴스를 생성합니다. 실행할 methodUnderTest() 구현을 통해 로직 테스트가 가능해집니다. 동시에 추상 메서드 methodIDontCareAbout()은 테스트에서 호출되지 않으므로 구현할 필요가 없습니다.

이점

이 접근 방식은 테스트를 간소화합니다. 사용자 정의 서브클래스를 생성하거나 추상 메서드를 구현할 필요가 없어져 추상 클래스가 생성됩니다. 또한 추상 클래스와 테스트 케이스 간의 원하는 분리를 유지하여 보다 명확하고 간결한 테스트를 가능하게 합니다.

위 내용은 Mockito는 추상 클래스 테스트를 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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