hamcrest-library Matchers와 hamcrest-core CoreMatchers의 차이점
햄 크레스트 org.hamcrest.Matchers
클래스가 org.hamcrest.CoreMatchers
( Matchers
더 많이있는 것처럼 보이지만 ) 매우 비슷해 보입니다 . 왜 내가 사용하기로 선택하고 CoreMatchers
(클래스가 약간 더 작은 것처럼 보이는 것 외에)이 두 클래스가 왜 그렇게 비슷한가요?
Hamcrest 매처는 여러 모듈로 나뉩니다. "코어"에는 다른 매처를 만드는 데 필요한 가장 기본적인 매처와 추상 클래스가 포함됩니다. org.hamcrest.CoreMatchers
이러한 매처에 대한 팩토리 메서드 만 포함합니다. 다른 일치자는 일치하는 개체 유형별로 그룹화 된 "라이브러리"모듈에 있으며 선택 사항입니다. org.hamcrest.Matchers
두 세트의 매처를 포함합니다.
어느 것을 사용해야합니까? 나는 문제없이 후자에서 모든 것을 정적으로 가져옵니다. 아마도 컴파일 시간이 약간 더 오래 걸릴 수도 있지만 그것은 나에게 문제가되지 않았습니다. JUnit 가져 오기 외에도 단위 테스트의 맨 위에 이것을 넣었습니다.
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
이것은 테스트 방법에서 최고의 가독성을 제공합니다.
Mockito를 많이 사용한다면 (내가하는 것처럼) 다음과 같이 할 수 있습니다.
import org.mockito.Mockito;
또는
static import org.mockito.Mockito.*;
이후와 Mockito
클래스가 Mockito의 확장 Matchers
클래스를, 당신은 매처 (Matchers) 클래스 또는 정적 방법 중 하나를 사이에 충돌로 끝날 수 있습니다. CoreMatchers를 사용하면 Mockito와 동일한 클래스에서 JUnit에서 파생 된 CoreMatchers를 사용 시점에서 정규화하지 않고도 사용할 수 있습니다.
Android의 JUnit 테스트 (연결된 테스트가 아님)를 사용하는 경우 CoreMatcher
s는 이미 포함 된 junit 모듈 내에서 사용할 수있는 것처럼 보이지만 Matchers
그렇지 않습니다.
따라서 오버 헤드를 줄이고 다른 라이브러리를 가져 오지 않으려면 CoreMatcher
다음 클래스 의 버전이 충분할 경우 사용하는 것이 좋습니다.
assertThat(chrome.twiddle(), is(equalTo(0)));
CoreMatcher
s 만 사용할 수 있습니다.
'Programing' 카테고리의 다른 글
알 수없는 텍스트에서 텍스트로의 변환 함수를 찾지 못했습니다. (0) | 2020.11.22 |
---|---|
전체 httpd 구성을 어떻게 볼 수 있습니까? (0) | 2020.11.22 |
github README.md에서 HTML 콘텐츠를 표시하는 방법은 무엇입니까? (0) | 2020.11.22 |
python argparse를 사용하여 여러 중첩 하위 명령을 구문 분석하는 방법은 무엇입니까? (0) | 2020.11.22 |
GCC 4.8에서 C ++ 11 thread_local 변수의 성능 저하는 무엇입니까? (0) | 2020.11.22 |