JUnit 4でHamcrestを使用するには、assertThat()
関数を使用します。しかし、JUnit 5はもはやassertThat()
の機能を持ちません。どのようにassertThat()
なしでHamcrestを使用しますか?JUnit 5にassertThat()関数がない場合、HamcrestをJUnit 5で使用するにはどうすればよいですか?
9
A
答えて
12
ハムクレストがクラスパスに含まれていることを確認してから、Hamcrestが提供するassertThat()関数を使用する必要があります。現在JUnit 5 User Guide - Writing Tests Assertionsから、
JUnitの木星org.junit.jupiter.AssertionsクラスHamcrestマッチャを受け入れるのJUnit 4のorg.junit.Assert クラスに見られるような assertThat()メソッドを提供しません。その代わりに、開発者は サードパーティのアサーションライブラリ によって提供されるマッチャの組み込みサポートを使用することを推奨しています。
次の例は、JUnit Jupiterテストで、HamcrestのassertThat()サポート を使用する方法を示しています。 Hamstのライブラリ がクラスパスに追加されている限り、assertThat()、is()、equalTo()などのメソッド を静的にインポートして、下のassertWithHamcrestMatcher()メソッドのようにテスト で使用できます。
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import org.junit.jupiter.api.Test;
class HamcrestAssertionDemo {
@Test
void assertWithHamcrestMatcher() {
assertThat(2 + 1, is(equalTo(3)));
}
}
当然のことながら、JUnitの4プログラミングモデルに基づいて、従来のテストが org.junit.Assert#assertThatを継続して使用することができます。」
関連する問題
- 1. JUnitの5のGradleのGradleでJUnitの5を使用する
- 2. Maven FailsafeプラグインでJUnit 5統合テストを実行するにはどうすればよいですか?
- 3. JUnitとHamcrestを使用してダブルスを比較するにはどうすればよいですか?
- 4. JUnitクラスに複数のインポートがある場合、Windows CMDウィンドウからJUnitテストを実行するにはどうすればよいですか?
- 5. ビルドパスにjunit-4.3.1.jarがある場合、EclipseがJUnit 3を使用しているのはなぜですか?
- 6. JUnit 5 with Gradleの使い方は?
- 7. JUnit 5 - グローバルタイムアウト?
- 8. JUnit 5 @EnumSourceの実際の使用例は何ですか?
- 9. JUnit assertThatの使い方は正しくありますか?
- 10. JUnit 5 for Androidテスト
- 11. JUnit Assert#assert Hamcrestに相当する
- 12. GradleでJUnit 5コンソールランチャーフラグを使用する方法
- 13. junitテストに使用するEclipseクラスパスを設定するにはどうすればよいですか?
- 14. Rails 5では、find_byが存在しない場合、結果を返さないようにするにはどうすればよいですか?
- 15. junitを使用してMultiPartパラメータでREST APIをテストするにはどうすればよいですか?
- 16. ストーリーボードを使用せずにiOS 5でマルチビューアプリケーションを使用するにはどうすればよいですか?
- 17. EclipseでJUnit RunListenerを使用するにはどうすればよいですか?
- 18. Antを使ってJUnit 5 @Tagテストを実行するには?
- 19. 変数を5%減らすにはどうすればよいですか?
- 20. デフォルトのフォームデータが角度5で非同期である場合に反応的なフォームを使用するにはどうすればよいですか?
- 21. PHP 5でXSLT関数を有効にするにはどうすればよいですか?
- 22. JUnit(計装されていない)Androidユニットテストで使用されるコードでArrayMapを使用するにはどうすればよいですか?
- 23. JUnit 5の目的は何ですか@ネストされた注釈
- 24. UIStatusBarHiddenがYESの場合でも、iOS 5がステータスバーを表示しないようにするにはどうすればよいですか?
- 25. どうすればいいですか... MVC 5の倍数モデルMVC 5
- 26. JUnitテストケースからプログラムに複数の入力をシミュレートするにはどうすればよいですか?
- 27. 同じビルドでJUnit 4とJUnit 5のテストを実行
- 28. Laravel 5でジオロケーションをクエリするにはどうすればよいですか?
- 29. NoClassDefFoundError on org/hamcrest/Matcher on junit
- 30. Junitプラグインをカスタムプラグインに統合するにはどうすればいいですか?
assertThat'だった '、私の心をされ吹く何すべてのアサーションを行う新しい方法であるはずのJUnit 5が突然現れ、何らかの形で従来のすべてのアサーションメソッドが残っていますが、現代のものだけが削除されています。彼らは本当にそこに行って、冗長なアサーション方法をすべて削除したと思う。私はおそらく移行の便宜のためだと考えましたが、パラメータの順序は同じではありません。 – Trejkaz