1. 개요

이 짧은 예제는 Mockito를 사용하여 최종 클래스 및 메서드를 조롱하는 데 중점을 둡니다.

다른 기사는 Mockito 프레임워크에 초점을 맞췄습니다. 모키토 검증 , 모키토 언제/다음 그리고 아래에 표시된 Mockito의 모의 방법처럼 나의 목록 테스트 사례에서 협력자로서의 클래스 사용 .

이 사용법에 대한 새 방법을 추가하십시오.

public class MyList extends AbstractList<String> {
    final public int finalMethod() {
        return 0;
    }
}

또한 최종 하위 클래스로 확장 .

public final class FinalList extends MyList {

    @Override
    public int size() {
        return 1;
    }
}

2. 최종 메서드 및 클래스에 대한 Mockito 구성

Mockito를 사용하여 최종 클래스와 메서드를 모의하기 전에 구성해야 합니다.

프로젝트에서 src/test/resources/mockito 확장 레지스터에서 org.mockito.plugins.MockMaker 이름이 지정된 텍스트 파일을 추가하고 텍스트 줄을 추가해야 합니다.

mock-maker-inline

모키토는 구성 파일이 로드될 때 extensions 디렉토리에서 구성 파일을 확인하십시오. 이 파일을 사용하여 최종 메서드 및 클래스를 시뮬레이션할 수 있습니다.

3. 최종 메서드 모의

적절하게 구성된 Mockito를 사용하면 다른 것과 마찬가지로 최종 방법을 시뮬레이션할 수 있습니다. .

@Test
public void whenMockFinalMethodMockWorks() {

    MyList myList = new MyList();

    MyList mock = mock(MyList.class);
    when(mock.finalMethod()).thenReturn(1);

    assertThat(mock.finalMethod()).isNotEqualTo(myList.finalMethod());
}

구체적인 인스턴스와 MyList의 모의 인스턴스를 생성하여 의 버전 finalMethod()에서 반환 완전한 값 비교 모의가 호출되었는지 확인합니다.

4. 마지막 수업 모의하기

최종 클래스를 조롱하는 것은 다른 클래스를 조롱하는 것만큼 쉽습니다. .

@Test
public void whenMockFinalClassMockWorks() {

    FinalList finalList = new FinalList();

    FinalList mock = mock(FinalList.class);
    when(mock.size()).thenReturn(2);

    assertThat(mock.size()).isNotEqualTo(finalList.size());
}

위의 테스트와 마찬가지로 최종 클래스의 구체적이고 시뮬레이션된 인스턴스를 만들고 메서드를 시뮬레이션하고 시뮬레이션이 다르게 작동하는지 확인합니다.

5. 결론

이 짧은 기사에서는 Mockito 확장을 사용하여 Mockito로 최종 클래스 및 메서드를 조롱하는 방법을 설명했습니다.

항상 그렇듯이 완전한 예입니다 GitHub에서 찾을수있다.

res – Junit(가이드)(고양이=테스트)