Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mockito局部沥青混合料mocking_Java_Unit Testing_Mockito_Matcher - Fatal编程技术网

Java mockito局部沥青混合料mocking

Java mockito局部沥青混合料mocking,java,unit-testing,mockito,matcher,Java,Unit Testing,Mockito,Matcher,我正在尝试用java编写单元测试。下面是我的代码片段 班级临时工{ 公开作废法(){ 试验方法: @Test public void testMethod() { Mokito.when(someObjectMock.someMethod(Mockito.anyString(), Mockito.anyString(), Mockito.anyInt(), Mockito.anyBoolean(), false)). thenReturn(tr

我正在尝试用java编写单元测试。下面是我的代码片段

班级临时工{ 公开作废法(){

试验方法:

@Test
public void testMethod() {

     Mokito.when(someObjectMock.someMethod(Mockito.anyString(), Mockito.anyString(), Mockito.anyInt(), Mockito.anyBoolean(),
                    false)). thenReturn(true);

     boolean status = temp.method();

     Assert.assertEquals(true, status);
}
然而,在执行测试用例时,我得到了以下错误:

 Invalid Use of argument matchers !
 5 matchers expected, 4 recorded
如果我的理解是正确的,它希望所有传递的参数都被模拟。然而,这不是我想要的,我希望模拟前4个参数,并基于5个参数(true或false),然后指定适当的方法返回值

有办法绕过这个吗


谢谢

对于最后一个参数,您需要使用
Matchers.eq(false)
(或者
Mockito.eq(false)
,在这两个地方都公开了相同的静态方法),而不是简单的
false

这样说,考虑把所有匹配器放在你的抓取中(<代码>())/代码>调用>而不是期望一个值。这里有两个例子:要么你的测试实际上关心什么值被传递到模拟中,在这种情况下你需要一个<代码> VIEFIFY()/<代码>调用(因为遗漏的模拟预期不是Mockito中的错误),或者您的测试不关心,在这种情况下,预期特定值只会使您的测试变得脆弱。无论哪种方式,在存根时预期特定参数都没有任何价值,除非您需要根据不同的参数值从存根返回不同的值

 Invalid Use of argument matchers !
 5 matchers expected, 4 recorded