マッチャーをTestNGアサーションで簡単に使用できるように、HamcrestをTestNGと統合した人はいますか?
3 に答える
要するに、あなたの質問に答えるには: 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 を追加してみてください。
私のような人に役立つことを願っています。