Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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 PowerMockito.verifyPrivate始终独立于参数工作_Java_Junit_Powermockito - Fatal编程技术网

Java PowerMockito.verifyPrivate始终独立于参数工作

Java PowerMockito.verifyPrivate始终独立于参数工作,java,junit,powermockito,Java,Junit,Powermockito,正如标题所述,我可以将verifyPrivate称为verifyPrivate,但即使我向它传递了错误的参数,它也总能给我带来成功 实例 现在这段代码将成功,即使我做了类似的事情 // THEN verifyPrivate(service).invoke("privateMethod", "other string", Role.USER, new SivDto()); 也许我遗漏了什么,但我就是想不出来。首先。您是否在privateMethod中设置了调试点,并查看它被调用了多少次?这会给你

正如标题所述,我可以将verifyPrivate称为verifyPrivate,但即使我向它传递了错误的参数,它也总能给我带来成功

实例

现在这段代码将成功,即使我做了类似的事情

// THEN
verifyPrivate(service).invoke("privateMethod", "other string", Role.USER, new SivDto());

也许我遗漏了什么,但我就是想不出来。

首先。您是否在
privateMethod
中设置了调试点,并查看它被调用了多少次?这会给你一些提示。
它被呼叫了两次。一次当你打电话的时候

service.getNbInscriptions(operator, role, sivDto);
当你使用

verifyPrivate(service).invoke("privateMethod", operator, Role.ADMINISTRATEUR, sivDto);
由于第二次使用传递给invoke方法的参数调用它,测试总是成功的

使用
Spy
而不是
Mock
而不是

@InjectMocks
MyService service;
使用

这样,就不会对该方法进行第二次调用,并正确验证参数

我的坏。。。确实有效;)泰!!!顺便说一句,因为我需要将mock注入到正在测试的服务中,所以我最终混合了Spy和Injectmock这两种注释,现在可以按预期工作了!!!多谢各位
@InjectMocks
MyService service;
@Spy
MyService myservice = new MyService(operationSivRepo)