mockito 예제

또한 Mockito는 내부 클래스, 로컬 클래스, 추상 클래스 및 인터페이스를 인스턴스화할 수 없습니다. 따라서 항상 스파이 인스턴스를 제공하는 것이 좋습니다. 그렇지 않으면 실제 메서드가 호출되지 않고 자동으로 무시되지 않을 수 있습니다. IntelliJ를 사용하는 경우 Gradle 또는 Maven을 사용하여 모키토에 대한 종속성을 관리해야 합니다. Mockito는 테스트 복식(모의)을 쉽게 만들 수 있는 오픈 소스 프레임워크입니다. 테스트 더블은 테스트 목적으로 프로덕션 개체를 대체하는 모든 경우에 대한 일반적인 용어입니다. 여기에 보이드 방법을 조롱하는 방법에 대한 약간의 추가 된 사용샘플입니다 (예를 들어, 레거시 수면 대신 마이크로 수면을 수행하는 방법); doAnswer(새 답변() { 공개 무효 답변(InvocationOnMock 호출) { TRY { // Object[] args = invocation.getArguments(); // System.out.println(« 인수로 부름:  » + Arrays.toString(args)); 스레드.수면(100); } 캐치 (InterruptedException e) { e.printStackTrace(); } 반환 null; }}.when(모의 인스턴스).sleep(anyLong()); src: http://stackoverflow.com/questions/2276271/how-to-make-mock-to-void-methods-with-mockito 및 http://site.mockito.org/mockito/docs/current/org/mockito/mockito.html#doAnswer(org.mockito.stubbing.Answer) 홉이 이 예제를 참조하는 데 도움이 됩니다. 을 클릭하면 OutputStreamWriter가 래핑된 출력 스트림에 대한 close 메서드 호출을 전파하는지 확인합니다. 이전 예제와 유사한 anyInt()와 같은 메서드 및 일치 자에서 인수를 사용할 수 있습니다.

리터럴과 매치를 혼합할 수 없으므로 여러 인수가 있는 경우 모두 리터럴 또는 매치자여야 합니다. eq(값) 일치를 사용하여 리터럴을 값을 비교하는 일치자로 변환합니다. Mockito에는 이미 내장된 많은 매치가 제공되지만 때로는 좀 더 유연해야 할 때도 있습니다. 예를 들어 OutputStreamWriter는 출력을 버퍼링한 다음 플러시할 때 래핑된 개체로 보내지만 버퍼가 선행되는 정도를 알 수 없습니다. 따라서 같음 일치를 사용할 수 없습니다. 그러나, 우리는 우리 자신의 matcher를 제공 할 수 있습니다 : 종속성에 대한 모의를 사용하는 junit 테스트를 작성하는 방법을 배웁니다. 제공된 예제에는 데이터베이스DAO 및 NetworkDAO를 사용하여 지정된 파일을 데이터베이스에 저장하는 RecordService와 네트워크 위치가 있습니다. 모키토 v2 이후 최종 클래스를 모의 할 수 있습니다. 이 기능은 인큐베이션되며 기본적으로 비활성화됩니다. 최종 클래스의 조롱을 활성화하려면 src/테스트/리소스/모키토 확장/ 또는 src/mockito 확장/에서 파일 org.mockito.plugins.MockMaker를 만듭니다. 이 줄을 파일에 추가합니다: 모의 메이커 인라인.

이 수정을 통해 이제 최종 클래스를 조롱할 수 있습니다. 특정 동작만 조롱하고 실제 메서드를 호출하여 stubbed 동작에 대해 호출하려면 Mockito spy() 메서드를 사용하여 스파이 개체를 만들 수 있습니다. @Mock 어노런 및 MockitoRule 규칙의 사용법은 다음 예제에서 설명합니다. mockito.when(mapper.map(any(any), « test »).thenReturn(새 것()); ITweet 인스턴스를 얻기 위해 복잡한 서비스를 시작하지 않으려면 Mockito에서 조롱할 수도 있습니다. Mockito 모의 프레임 워크는 우리가 다른 방법과 주석을 통해 쉽게 모의 객체를 만들 수 있습니다. 우리는 또한 다른 모의 객체에 모의 객체를 삽입 할 수 있습니다, 이것은 매우 유용한 기능입니다. org.mockito.mockito.*를 추가하여; 정적 가져오기를 사용하면 테스트에서 직접 mock()과 같은 메서드를 사용할 수 있습니다. 정적 가져오기를 사용하면 클래스를 지정하지 않고 정적 멤버, 즉 클래스의 메서드 및 필드를 직접 호출할 수 있습니다.

저작권 © 2012-2019 vogella GmbH. 소프트웨어 예제의 무료 사용은 이클립스 공공 라이센스 2.0의 조건에 따라 부여됩니다. 이 튜토리얼은 크리에이티브 커먼즈 저작자 표시-비상업적-공유3.0 독일 라이선스에 따라 게시됩니다. Mockito는 JUnit과 함께 사용할 수있는 인기있는 모의 프레임 워크입니다. Mockito를 사용하면 모의 개체를 만들고 구성할 수 있습니다. Mockito를 사용하면 외부 종속성이 있는 클래스에 대한 테스트 개발이 크게 간소화됩니다. Mockito는 자바에서 가장 유명한 조롱 프레임 워크입니다.

Dark Bugsymockito 예제