具有类型化vararg参数的Mockito when子句 - 使用anyVararg进行单元测试

时间:2014-10-06 12:20:29

标签: java junit mockito

我正在使用Mockito& JUnit的。我试图模拟一个方法,它采用固定类型的vararg参数。

我试图模拟的方法的伪代码:

public class Alpha {
    public String test(String...args){return "abcd";}
}

我希望测试代码:

Alpha alphaMock = Mockito.mock(Alpha.class);
when(alphaMock.test(anyVararg(String.class)).thenReturn("success");

但是Mockito.anyVararg()并没有采用类型参数。我们如何处理这种情况?

3 个答案:

答案 0 :(得分:2)

anyVararg是参数化方法。尝试:

Alpha alphaMock = Mockito.mock(Alpha.class);
when(alphaMock.test(Matchers.<String> anyVararg())).thenReturn("success");

答案 1 :(得分:1)

您可以尝试直接将anyVarag()转换为String,例如: -

当(alphaMock.test((字符串)anyVararg())thenReturn( “成功”);

答案 2 :(得分:0)

尝试使用数组:

any(String[].class)

因为这就是vararg本质上是