私は何を持っていることは、この行を無視している別の文字列が含まれていることを確認します。どうすればいい?私は答えは、このようなクラスのように見えることを働いてきたJB NizetへMockito引数がケース
答えて
the pageでは、「あなたはメソッドを抽出できますか」ということは、Java 8ラムダを使用してこれを1ライナーにすることは可能ですか?
hereからケース非感受性のコードを使用して一列に
:
verify(mockAppendable)
.append(
argThat(arg ->
Pattern.compile(Pattern.quote(msg), Pattern.CASE_INSENSITIVE).matcher(arg).find()));
彼らはカスタムエラーメッセージを指定するスキップしラムダバージョンを可能にしました。
verify(mockAppendable).append(argThat(containsCaseInsensitive(msg)));
および方法は、次のように定義されます:
そして、「あなたはメソッドを抽出することができます」によって
は、彼らが意味 完全に再利用可能ですpublic static ArgumentMatcher<String> containsCaseInsensitive(final string s) {
if (s == null) throw new IllegalArgumentException("s is null");
final Pattern pattern = Pattern.compile(Pattern.quote(s), Pattern.CASE_INSENSITIVE);
return new ArgumentMatcher<String>() {
@Override
public boolean matches(String arg) {
return arg != null && pattern.matcher(arg).find();
}
@Override
public String toString() {
return String.format("[should have contained, ignoring case, \"%s\"]", s);
}
};
}
は、新しいクラスの内部でそれを置くことができます例えばMocitoMatchersのようなもので、組み込みmatcherのような多くのテストから呼び出すことができます。
Brilliant。どうもありがとう! –
あなたの "containsCaseInsensitive"の私のバージョンを見てください。そしておそらくあなたを編集しますか? (ヌル引数と少し読みやすくするために)...編集を提出しようとしましたが、私はうんざりして、第三者の査読者はそれを拒否しました... –
あなたはもっと完全かもしれませんが、SOはここにはありませんコピー&ペースト可能なライブラリ品質コード。すべてのヌルチェックと異なるメッセージは、人々が望むならば追加することを選ぶことができるだけの騒音であり、質問に違いを生じさせません。 – weston
ありがとう:
class ContainsThisIgnoringCase implements ArgumentMatcher<String> {
private String msg;
ContainsThisIgnoringCase(String msg){
this.msg = msg;
}
@Override
public boolean matches(String arg) {
return arg.toLowerCase().contains(msg.toLowerCase());
}
@Override
public String toString(){
return msg;
}
}
はしかし、私はその後、彼のリンクが指示したthe pageに見るもので困惑しています:
a) "あなたは方法を抽出できます"とはどういう意味ですか?
b)Java 8ラムダを使用してこれを1ライナーにすることは可能ですか?
- 1. Mockito特定のクラス引数
- 2. Mockito包括的引数
- 3. Mockitoは、引数の不正使用はマッチャー可変引数
- 4. Mockitoがメソッドの引数any()と一致しません
- 5. Mockito。引数値が取得されませんでした
- 6. 引数キャプターを使ったmockitoによるjunitテスト
- 7. 引数を持つメソッドのためのmockito donothing
- 8. Mockitoの引数をメソッドのシグネチャに一致させる方法
- 9. Mockitoのスパイオブジェクトは、任意の(と検証)引数
- 10. Mockitoを使ってコンストラクタ引数を渡す方法
- 11. いくつかの引数のためのMockito条件
- 12. Mockitoローカル変数
- 13. Mockitoが間違った引数について文句を言います
- 14. mockitoのanyString()が無効な引数マッチャーを使用しています
- 15. Mockitoを使う:プライベートな静的メソッドで複数の引数をマッチングする?
- 16. 不思議なケースでQCoreApplicationでユーザの引数が空になる
- 17. Mockito /パワーMockito:アンドロイド
- 18. mockitoのNullPointerExceptionが
- 19. NullPointerExceptionがMockito
- 20. void関数のMockito - thenCallRealMethod()void
- 21. Array.prototype.slice.call(引数)(引数が)
- 22. Mockitoのjava - テストメソッドの呼び出しは、異なる引数を持つ
- 23. Mockitoは、オブジェクトがメソッド
- 24. Mockito
- 25. Mockito:
- 26. argparse:特定のケースの位置からオプションへの変更引数
- 27. Mockitoレストエンドポイントテスト - 引用符付きの比較リスト
- 28. @RequestParam値がケース
- 29. がケースでスラッシュ
- 30. 変数テーブルの更新ケース
argThatの使用例:https://static.javadoc.io/org.mockito/mockito-core/2.7.5/org/mockito/ArgumentMatchers.html#argThat(org.mockito.ArgumentMatcher) –
ありがとうございました。私はそれがあなたのリンクが指示するこのページによると、Java 8ラムダを使って1ライナーとしてそれを行うことが可能かどうか疑問に思っています:https://static.javadoc.io/org.mockito/mockito-core/2.7 .5/org/mockito/ArgumentMatcher.html –