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에서 찾을수있다.
참조
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/mockito-final