問題タブ [hamcrest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
junit - コレクション内のすべての要素をテストすると、述語が満たされます
List
いくつかの複雑なオブジェクトの順序を返すメソッドをテストする必要があります。簡略化した例:
私は両方をテストしたいと思います:返されたコレクションの注文可能(今から私はorg.hamcrest.collection.IsIterableContainingInOrder.contains
述語を使用して実行していました)。
総括する。私はそのような構文を探しています:
デフォルトの1つで、最初の引数はであり、述語の引数はsであるため、contains
メソッドは機能していません。その間に何らかの橋が必要です。Collection<MyObject>
String
java - 複数のカスタム マッチャーを 1 つのメソッドに割り当てると、Mockito が奇妙な動作をする
1 つのメソッドに対して 2 つのカスタム マッチャーを使用したいと考えています。基本的には、メソッドに VALUE_A を渡せば RESULT_A を返したいし、VALUE_B を渡せば RESULT_B を返したい。コードの抜粋は次のとおりです。
IsEmpty カスタム マッチャーを mockHTable.get() メソッドに割り当てると、IsNonEmpty.matches() 関数が呼び出されます。なぜこれを行っているのかわかりません。そこで、IsNonEmpty クラスを次のように変更します。
そして、すべてがうまくいきます!IsNonEmpty.matches() は、IsEmpty マッチャーを mockHTable.get() 関数に割り当てたときに引き続き呼び出されますが、マッチャーは本来の方法で正確に動作します。
それで、取引は何ですか?なぜこれが起こるのですか?私の回避策は、この風変わりな動作を補う適切な方法ですか、それとも間違っていますか?
python - Hamcrestで複数のassert_thatを組み合わせる方法は?
私はPyHamcrestを使用していますが、この質問は言語に依存しないと思います。
私は向きを変えたいと思います:
両方のアサーションが失敗した場合にエラーメッセージにそのように表示されるように、単一のアサーションに変換します。これはHamcrest(または他のパッケージ/モジュール)で実行できますか?
Pythonでは、次のように実装しました。
だから私のテストは呼び出すでしょう:
しかし、私はすでにこのようなものの実装があるかどうか疑問に思っています。
junit - assertThat と Hamcrest is() と nullValue() の奇妙なエラー
標準から変換して使用するメソッドがassertNull
あります。assertNotNull
assertThat
以下からいくつかのアサーションを変更し始めました。
これに:
しかし、nullValue()
内部is()
にいると、さまざまなテスト方法にまたがるように見える一貫性のないアサーション エラーが発生し始めます。次の場合を除いて、このエラーのパターンを推測するのは困難です。
私がnullValue()
単独で変換すると:
問題は解決します。
誰かがなぜ使用するのか説明できますかnullValue()
へのパラメータとしてis()
動作しませんか?
java - Hamcrestを使用して、doubleの配列内の各要素が別の配列内の各要素に「近い」かどうかを確認するにはどうすればよいですか?
doubleの2つの配列を比較したいと思います。バニラJUnitを使用して、次のことができます。
できればカスタムマッチャーを作成せずに、Hamcrestを使用してこれを行う方法を知りたいです(可能な場合)。配列内の各要素に「近い」マッチャーを使用するのと似ています。
map - JMock マップの期待値
Map を引数として取るメソッドに依存しています。
この依存関係が適切なマップ コンテンツで呼び出されるというアサーションを書きたいと思います。このようなもの:
残念ながら、これはコンパイルに失敗します。これは、hasEntry のマップ ジェネリック パラメーターにワイルドカードがあるためです。
マップ コンテンツの JMock 期待値を記述する方法はありますか?
java - Hamcrest allOf() の署名は間違っていますか?
このマッチャーは、マッチャーのコレクションをチェックし、それらがすべて成功した場合に成功します。
署名は次のとおりです。
なぜこれはイテラブルを取るのですか
Matcher<? extends T>
そしてそうではない
Matcher<? super t>
それがそのまま正しい場合は、説明してください。
タイプは、一致する (テストされる) オブジェクトから推測されるため、一致するオブジェクトまたはそのスーパークラスと互換性のあるマッチャーを iterable が保持することが期待されます。同様に、サブクラスとのみ互換性のあるマッチャーを iterable に保持させるのは間違っているようです。
junit - hamcrest-library マッチャーと hamcrest-core CoreMatchers の違い
hamcrestorg.hamcrest.Matchers
クラスは に非常に似てorg.hamcrest.CoreMatchers
いるように見えます (Matchers
もっとあるように見えますが)。なぜ使用することを選択するのですかCoreMatchers
(クラスがわずかに小さいように見えることを除いて)、これら 2 つのクラスが非常に似ているのはなぜですか?
java - lambdaj を使用した大文字と小文字を区別しないフィルタリング
私はラムダジに慣れようとしていますが、この問題を解決する最善の方法がわかりません。次のテストがあるとします。
マッチャーが大文字と小文字を区別しないようにするにはどうすればよいですか? つまり、大文字と小文字に関係なく、l1 にない l2 のアイテムのリストが必要ですか? 文字列の各リストを同じ大文字と小文字に変換するために別の Lambda を実行する必要はありませんが、代わりに、Matcher を変更して希望どおりに実行する方法が必要です。これは可能ですか、それとも最初にアイテムを同じケースに変換する必要がありますか?
java - hamcrestとmockitodslを使用してintellijでオートコンプリートを構成する
テストクラスでhamcrestとmockitodslのイディオムを提案するようにIntellijのスマートインサートを構成することは可能かどうか疑問に思っています。本当に私は日食の「静的なお気に入り」のようなものを探しているので、ctrl+spaceまたはctrl+shift+spaceを押すとイディオムが存在します。
一般に、オートコンプリート/スマートインサートまたはその問題の提案バルーンを構成することは可能ですか。運が悪かったので設定を確認しましたが、見落としがちでした。