문제

TestNG Assertions에서 매칭자가 쉽게 사용할 수 있도록 Hamcrest와 TestNG와 통합 된 사람이 있습니까?

도움이 되었습니까?

해결책

요컨대, 귀하의 질문에 답하기 위해 : TestNG를 Hamcrest와 통합 할 필요는 없습니다. 그냥 전화하십시오 org.hamcrest.MatcherAssert.assertThat(...) 버린 직접 java.lang.AssertionError.

배경

Google을 통해 귀하의 질문을 찾아 정확히 같은 문제를 궁금해했습니다. 추가 인터넷 검색 후에는 만족스러운 답변을 찾지 못했기 때문에 Junit과 Hamcrest와의 통합을위한 소스 코드를 읽었습니다.

Junit을 사용하면 Hamcrest 통합이 일반적으로 호출을 통해 사용됩니다.

org.junit.Assert.assertThat(
    T actual,
    org.hamcrest.Matcher<? super T> matcher)

소스 코드를 읽을 때 전화 할 작은 래퍼 만 발견했습니다.

org.hamcrest.MatcherAssert.assertThat(
    String reason,
    T actual,
    org.hamcest.Matcher<? super T> matcher)

이 기능은 던졌습니다 java.lang.AssertionError.

다른 팁

빈 방법으로 문제에 직면하고 있다면 추가하는 것이 좋습니다. hamcrest 먼저 종속성 목록에서. 또는 먼저 가져옵니다 hamcrest, 그것은 문제를 해결할 것입니다.

rexsl (내부적으로 Hamcrest를 사용하여)과 함께 testnj를 사용하고 있었고 빈 방법을 찾지 못합니다. 그런 다음 종속성 목록에서 먼저 rexsl을 추가했습니다. 클래스 경로에 라이브러리를 추가하는 경우 먼저 Hamcrest를 추가 할 수 있습니다.

나와 같은 사람이 도움이되기를 바랍니다.

나를 위해 일한 것 : 1. http://search.maven.org/

  1. 'Java-Hamcrest'를 검색하십시오. 지금은 '2.0.0.0'입니다.

  2. Gradle에 대한 종속성 찾기 (내 경우)

  3. Compile 'org.hamcrest : Java-Hamcrest : 2.0.0.0'을 추가하여 내 프로젝트에서 Gradle을 작성했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top