2012-06-07 3 views

답변

37

Hamcrest matchers는 여러 모듈로 나뉩니다. "핵심"에는 다른 matchers를 빌드하는 데 필요한 가장 기본적인 matchers 및 추상 클래스가 포함됩니다. org.hamcrest.CoreMatchers에는 이러한 matchers에 대한 팩터 리 방법이 포함되어 있습니다. 다른 matchers는 일치하는 객체의 유형별로 그룹화되고 선택 사항 인 "라이브러리"모듈에 있습니다. org.hamcrest.Matchers에는 두 세트의 matchers가 포함됩니다.

어느 것을 사용해야합니까? 후자에서 아무 문제없이 모든 것을 정적으로 가져옵니다. 아마 컴파일 시간은 약간 더 오래 걸릴 수도 있지만 그것은 결코 저에게 중요한 문제가 아닙니다. JUnit 가져 오기 외에도 단위 테스트의 맨 위에 넣었습니다.

import static org.hamcrest.MatcherAssert.*; 
import static org.hamcrest.Matchers.*; 

이렇게하면 테스트 방법에서 가장 잘 읽을 수 있습니다.

import org.mockito.Mockito; 

또는

static import org.mockito.Mockito.*; 

을하고 Mockito 클래스는 Mockito의 Matchers 클래스를 확장하기 때문에, 당신은 종료 할 수 있습니다

9

당신이 (내가처럼) 많은 Mockito를 사용하는 경우 일 수 있습니다 Matchers 클래스 또는 정적 메소드 간의 충돌로 인해 발생합니다. CoreMatchers를 사용하면 Mockito와 동일한 클래스에서 JUnit에서 파생 된 CoreMatchers를 사용할 수있게되었습니다. 사용 시점에서 정규화하지 않아도됩니다.