Απολυμάνσεις Αθήνα

mockito 예제

150 150 trap

@Mock 주석을 사용하는 경우 MockitoAnnotations.initMocks(이)를 호출하여 조롱된 개체를 초기화해야 합니다. 테스트 전에 실행되는 프레임워크 설정 메서드를 테스트할 때 이 작업을 수행할 수 있습니다. 우선, http://mockito.org/ 모키토를 얻으십시오. 거의 모든 정말 흥미로운 org.mockito.Mockito 클래스 (또는 이 게시물에서 사용할 메서드의 정적 가져오기)로 가져올 수 있습니다. 그래서 바로 그것에 하자. 실행 경로가 올바른지 확인하기 위해 Mockito는 모의 특정 메서드가 호출되었는지, 몇 번이나 호출되었는지 확인하는 방법을 제공합니다. 이 작업은 verify() 메서드를 사용하여 수행됩니다. 이 특정 모의 인스턴스에서 더 이상 메서드가 호출되지 않았는지 확인하려면 NoMoreInteractions()가 사용됩니다. 이전 예제와 유사한 anyInt()와 같은 메서드 및 일치 자에서 인수를 사용할 수 있습니다. 리터럴과 매치를 혼합할 수 없으므로 여러 인수가 있는 경우 모두 리터럴 또는 매치자여야 합니다. eq(값) 일치를 사용하여 리터럴을 값을 비교하는 일치자로 변환합니다. Mockito에는 이미 내장된 많은 매치가 제공되지만 때로는 좀 더 유연해야 할 때도 있습니다. 예를 들어 OutputStreamWriter는 출력을 버퍼링한 다음 플러시할 때 래핑된 개체로 보내지만 버퍼가 선행되는 정도를 알 수 없습니다.

따라서 같음 일치를 사용할 수 없습니다. 그러나, 우리는 우리 자신의 matcher를 제공 할 수 있습니다 : 때로는 모키토로 조롱 할 수있는 정적 방법 주위에 래퍼를 사용할 수도 있습니다. 모키토는 정말 좋은 맛 조롱 프레임 워크입니다. 그것은 당신이 깨끗하고 간단한 API와 아름다운 테스트를 작성할 수 있습니다. Mockito는 테스트가 매우 읽기 쉽고 깨끗한 확인 오류를 생성하기 때문에 숙취를 주지 않습니다. Nota bene: 위의 예제는 point 클래스에 구현된 equals() 메서드가 없으므로 작동하지 않으므로 Mockito는 기본적으로 참조만 비교하는 java.lang.Object의 equals() 메서드를 사용합니다. 포인트 클래스는 이러한 상황을 해결할 수있는 방법을 보여 주는 동등한 방법없이 의도적으로 남아 있습니다. 이 장애물을 해결 하는 방법은 어설션 Mockito 모의 메서드 인수에 표시 됩니다 같지 않은 경우 () 메서드 구현 게시물. 이 예제에서는 모의 이터레이터를 만들고 다음에 처음 메서드가 호출될 때 “Hello”를 반환합니다. 그 반환 후 호출 “세계”. 그런 다음 일반 어설션을 실행할 수 있습니다.

이 클래스는 Mockito를 통해 생성할 수 있으며 다음 코드 조각에서 설명한 것처럼 모의 개체로 해당 종속성을 충족할 수 있습니다. Mockito는 모의 개체를 만드는 몇 가지 방법을 제공합니다: Mockito v2는 최종 클래스를 모을 수 있습니다. 이 기능은 인큐베이션되며 기본적으로 비활성화됩니다. 최종 클래스의 조롱을 활성화하려면 src/테스트/리소스/모키토 확장/ 또는 src/mockito 확장/에서 파일 org.mockito.plugins.MockMaker를 만듭니다. 이 줄을 파일에 추가합니다: 모의 메이커 인라인. 이 수정을 통해 이제 최종 클래스를 조롱할 수 있습니다.

  • 0