質問
Hamcrest を TestNG と統合して、そのマッチャーを 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
をインポートします。
私は(内部Hamcrestを使用して)rexslでTestNJを使用していたし、それが空の方法を見つけることができません。 その後、私は依存関係リスト内の最初のrexslを追加し、あなたがクラスパスにライブラリを追加する場合は、最初Hamcrest 1を追加しようとすることができます。
それは私のような誰かを助けることを願っています。
私にとってうまくいったこと:1. http://search.maven.org/
「java-hamcrest」を検索してください。現時点での最新は「2.0.0.0」です。
Gradle の依存関係を見つける (私の場合)
私のプロジェクトの build.gradle にコンパイル「org.hamcrest:java-hamcrest:2.0.0.0」を追加しました。