...
可変数の引数( Javaの場合)を持つメソッドへのwhen呼び出し内で引数マッチャーを使用しようとしていますが、成功しません。私のコードは以下のとおりです。また、これを機能させるために使用したすべての行をリストします。
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"));
「Helloworld」と表示されます。
ただし、printステートメントが次の場合:
System.out.println(mt.tripleDot(new String[]{"1","2"}));
また
System.out.println(mt.tripleDot("1","2"));
「null」を出力します。
anyObject()
また、whenコールのバリエーションを試してみましたanyString()
が、無駄になりました。可変数の引数を含むメソッド呼び出しに関して、Mockitoが引数マッチャーの使用を処理できるかどうかはわかりません。それも可能ですか?もしそうなら、私はこれを機能させるために何をすべきですか?