6

私はArgumentMatcherを書いていますが、比較の本質は次のようになります。

return A.value().equals(B.value()) && A.name().equals(B.name());

残念ながら、合格しなかった場合、Mockitoは失敗したと言ってくれます。「値が一致しません」や「名前が一致しません」などのカスタムメッセージを追加したい(もちろん、もっと情報を提供したいのですが、この単純なケースを理解できるまで、何をするのがポイントですかそれ以上)。

以前(Mockitoを使用する前)、マッチャーには2つのメソッドがあったことを覚えています。1つは一致をチェックし、もう1つは失敗メッセージを生成します(両方のメソッドを作成するのは面倒でしたが、今は2番目のメソッドがありません)。

これを行う方法はありますか?どんな助けでも大歓迎です!

4

3 に答える 3

4

わかった。Hamcrestは、「describeTo」メソッドを提供します。これは、EasyMockで覚えている方法と同じです。エラー条件をDescriptionオブジェクトに追加するだけで、ビオラの方が失敗メッセージが改善されます。

于 2011-02-19T17:02:42.607 に答える
3

カスタムメッセージを提供する一般的な方法は、次のMockito.description()方法です。

verify(writer, never().description("exception was thrown"))
  .println(any(Object.class));
于 2017-05-21T10:34:21.100 に答える
2

インターフェイスを実装している場合org.mockito.ArgumentMatcher、テストはそのメソッドを呼び出してtoString()、比較メッセージの「Wanted」側を作成します。toString()初期化に使用される期待されるオブジェクトのメソッドの値を返すだけでこのメソッドを実装するArgumentMatcherと、有用なメッセージが表示される可能性があります。

于 2018-11-06T18:16:21.970 に答える