>Java >java지도 시간 >Mockito를 사용하여 추상 클래스를 테스트하는 방법: 단계별 가이드

Mockito를 사용하여 추상 클래스를 테스트하는 방법: 단계별 가이드

Susan Sarandon
Susan Sarandon원래의
2024-10-30 18:07:03611검색

How to Test Abstract Classes with Mockito: A Step-by-Step Guide

Mockito로 추상 클래스 테스트

추상 클래스는 구체적인 구현이 부족하기 때문에 단위 테스트에 어려움을 겪습니다. 수동 모의 생성은 옵션이지만 시간이 많이 걸리고 복잡할 수 있습니다.

Mockito는 수동으로 모의 생성 없이 추상 클래스를 테스트할 수 있는 우아한 솔루션을 제공합니다. 작동 방식은 다음과 같습니다.

  1. 추상 클래스 모의:

    <code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>

    Answers.CALLS_REAL_METHODS를 사용하여 Mockito에게 실제 클래스를 실행하도록 지시합니다. 재정의되지 않은 메소드 구현을 통해 추상 메소드의 동작을 테스트할 수 있습니다.

  2. 필요한 스텁 추상 메소드:

    추상 메소드의 경우 테스트 중에 제어하려는 메서드를 사용하려면 다음 구문을 사용하세요.

    <code class="java">Mockito.when(mock.methodIDontCareAbout()).thenReturn(null);</code>

    이것은 특정 추상 메서드를 스텁하여 원하는 동작을 제공합니다.

예:

다음 시나리오를 고려하십시오.

<code class="java">public abstract class My {
    public Result methodUnderTest() { ... }
    protected abstract void methodIDontCareAbout();
}

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

이 예에서는 추상 메서드 methodIDontCareAbout()이 테스트 중인 메서드에서 사용되지 않습니다. thenReturn(null)을 사용하여 모의 작업을 수행하면 테스트 중에 이를 효과적으로 무시할 수 있습니다.

이 접근 방식은 추상 클래스를 테스트하는 간결하고 편리한 방법을 제공하여 손으로 만든 모의 클래스의 필요성을 없애고 비-클래스의 효율적인 테스트를 촉진합니다. 구체적인 수업.

위 내용은 Mockito를 사용하여 추상 클래스를 테스트하는 방법: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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