[解決済み] JUnitとHamcrestを一緒に使うには?
2023-03-26 10:37:51
質問
JUnit 4.8がHamcrest matcherとどのように連携するのか理解できません。いくつかの matcher が
junit-4.8.jar
の中で
org.hamcrest.CoreMatchers
. 同時に、いくつかの
その他
のマッチャーもあります。
hamcrest-all-1.1.jar
で
org.hamcrest.Matchers
. では、どこに行けばいいのでしょうか?私は明示的にプロジェクトにhamcrest JARを含めると、JUnitによって提供されるマッチャーを無視するのでしょうか?
特に、私が興味を持っているのは
empty()
マッチャーに興味があるのですが、これらのジャーのどれにも見当たりません。私は何か他のものが必要ですか?)
そして哲学的な質問ですが、なぜJUnitは
org.hamcrest
パッケージを配布したのでしょうか?
どのように解決するのですか?
junitはassertThat()という新しいチェックアサートメソッドを提供しており、これはMatcherを使用します。
これを使うために、junitにはいくつかのコアマッチャーが含まれています。基本的なテストであれば、これらから始めることができます。
より多くのマッチャーを使いたい場合は、自分で書くか、hamcrest libを使うことができます。
以下の例では、ArrayListに対してempty matcherを使用する方法を示しています。
package com.test;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class EmptyTest {
@Test
public void testIsEmpty() {
List myList = new ArrayList();
assertThat(myList, is(empty()));
}
}
(ビルドパスにhamcrest-all.jarを入れました)
関連
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
セミコロン期待値エラー解決
-
FindBugの使用概要
-
アノテーション「@Retention」の役割
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
ApiModel と @ApiModelProperty の使用法
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ