質問

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/

  1. 「java-hamcrest」を検索してください。現時点での最新は「2.0.0.0」です。

  2. Gradle の依存関係を見つける (私の場合)

  3. 私のプロジェクトの build.gradle にコンパイル「org.hamcrest:java-hamcrest:2.0.0.0」を追加しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top