ハムクレストで複数の正しい結果(or-matcherはあるのか?)
2023-07-08 19:03:04
質問
私はマッチャーに比較的慣れています。私は ハムクレスト をJUnitと組み合わせて遊んでいるのですが、ちょっと気に入っています。
複数の選択肢のうち、どれかが正しいことを表明する方法はありますか?
以下のようなものです。
assertThat( result, is( either( 1, or( 2, or( 3 ) ) ) ) ) //does not work in hamcrest
私がテストしているメソッドは、コレクションの1つの要素を返します。リストは複数の候補を含むことができます。私の現在の実装では、最初のヒットを返しますが、それは要件ではありません。私は、可能な候補のいずれかが返された場合、私のテストケースが成功するようにしたいです。あなたはこれをJavaでどのように表現しますか?
(私はhamcrest-alternativesにオープンしています)
どのように解決するのですか?
assertThat(result, anyOf(equalTo(1), equalTo(2), equalTo(3)))
から Hamcrestチュートリアル :
<ブロッククオート
anyOf
- マッチャーがマッチした場合、短絡的にマッチする(Java ||のように)。
参照 Javadoc .
さらに、独自の Matcher を書くことも可能で、これは非常に簡単です。
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
-bash: java: コマンドが見つからない 解決方法
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
ジャバアレイ
-
アノテーション「@Retention」の役割
-
java send https request prompt java.security.cert.について。
-
[解決済み] Hamcrest で何かが NULL であることを assertThat するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
強制型変換について
-
セミコロン期待値エラー解決
-
配列定数は初期化子でのみ使用可能です。
-
maven レポート エラー 解決不可能な親POM
-
Java基礎 - マッピングとQ/A
-
java 365*1000*60*60*24 計算問題
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題