引数の可変数(Javaの場合は...
)を持つメソッドの呼び出し時に引数マッチャーを使用しようとしています。私のコードは以下の通りです。私はこの作業をするために使ったすべての行もリストします。引数の数が可変のメソッド呼び出しの場合の引数マッチャーの使用
import static org.mockito.Mockito.*;
public class MethodTest {
public String tripleDot(String... args) {
String sum = "";
for (String i : args) {
sum += i;
}
System.out.println(sum);
return sum;
}
public static void main(String[] args) {
try{
MethodTest mt = mock(MethodTest.class);
when(mt.tripleDot((String[])anyObject())).thenReturn("Hello world!");
System.out.println(mt.tripleDot(new String[]{"1","2"}));
}
catch (Exception e) {
System.out.println(e.getClass().toString() + ": " + e.getMessage());
}
}
}
print文の場合:
System.out.println(mt.tripleDot(new String[]{"1"}));
または
System.out.println(mt.tripleDot("1"));
それが印刷されます "こんにちは、世界を。"
しかし、print文がある場合:
System.out.println(mt.tripleDot(new String[]{"1","2"}));
または
System.out.println(mt.tripleDot("1","2"));
それは "ヌル" を印刷します。
私はまた、anyObject()
やanyString()
のように、いつ呼び出すかのバリエーションを試みましたが、役に立たなかった。 Mockitoが引数の可変数を含むメソッド呼び出しに関して引数マッチャーを使用して処理できるかどうかはわかりません。それも可能ですか?もしそうなら、私はこの仕事をするために何をすべきですか?
今はとても恥ずかしく感じます。これを指摘してくれてありがとう。 – Andrew
@Andrew、心配しないでください。私たちすべてに起こります。それが私たちが学ぶ方法です。 :D – user1329572
正しい構文を見つけるのにもう少しの時間が必要でした: 'Matchers。 anyVararg() ' –
jan