Java Mockito varargs参数匹配器的使用无效

Java Mockito varargs参数匹配器的使用无效,java,mockito,Java,Mockito,测试 测试失败,出现下一条消息: org.mockito.exceptions.misusing.invalidUseofMatchers异常: 参数匹配器的使用无效!预计有2名匹配者,1名记录: 我必须使用int作为第一个参数和任意数量的vararg。如果对一个参数使用匹配器,则必须对所有参数使用它 when(spySimpleService.test(Mockito.eq(1), Mockito.<String>anyVararg())).thenReturn("Mocked!"

测试

测试失败,出现下一条消息:

org.mockito.exceptions.misusing.invalidUseofMatchers异常: 参数匹配器的使用无效!预计有2名匹配者,1名记录:


我必须使用int作为第一个参数和任意数量的vararg。

如果对一个参数使用匹配器,则必须对所有参数使用它

when(spySimpleService.test(Mockito.eq(1), Mockito.<String>anyVararg())).thenReturn("Mocked!");
when(spySimpleService.test(Mockito.eq(1),Mockito.anyVararg())。然后返回(“Mocked!”);

不能同时使用匹配器和正确的参数

spySimpleService.test(1,Mockito.anyVararg())

可以替换为


spySimpleService.test(anyInt(),Mockito.anyVararg())

我认为您需要为这两个参数使用参数匹配器,您不能在那里混合匹配

试一试

@Test//失败
public void test()引发异常{
当(spySimpleService.test(anyInt(),Mockito anyVararg())。然后返回(“Mocked!”);
}
Mockito.eq(1)
做这个把戏。谢谢我会在7分钟内接受你的回答。
@Service
public class SimpleService {

    public String test(int i, String... args) {
        return "test";
    }

}
when(spySimpleService.test(Mockito.eq(1), Mockito.<String>anyVararg())).thenReturn("Mocked!");
@Test //fails
public void test() throws Exception {
    when(spySimpleService.test(anyInt(), Mockito <String>anyVararg())).thenReturn("Mocked!");
}