Java Mockito varargs参数匹配器的使用无效
测试 测试失败,出现下一条消息: org.mockito.exceptions.misusing.invalidUseofMatchers异常: 参数匹配器的使用无效!预计有2名匹配者,1名记录: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!"
我必须使用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!");
}