Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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

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.lang.AssertionError:在Mockito中。如何修复它?_Java_Maven_Intellij Idea_Mockito - Fatal编程技术网

java.lang.AssertionError:在Mockito中。如何修复它?

java.lang.AssertionError:在Mockito中。如何修复它?,java,maven,intellij-idea,mockito,Java,Maven,Intellij Idea,Mockito,我得到以下错误:java.lang.AssertionError 如何修复它?我正在使用Mockito。我无法告诉您这是否与您的断言错误相关,但您误用了验证方法,该方法(与when不同)应该只包装有问题的mock,而不是整个方法调用 public void someMethod() throws Exception { // null when(request.getParameter("abc")).thenReturn(null); try

我得到以下错误:
java.lang.AssertionError


如何修复它?我正在使用Mockito。

我无法告诉您这是否与您的
断言错误相关,但您误用了
验证
方法,该方法(与
when
不同)应该只包装有问题的mock,而不是整个方法调用

public void someMethod() throws Exception {
        // null 
        when(request.getParameter("abc")).thenReturn(null);

        try {
            abc.manageIncome(request, response, nancy, null);
            fail();
        } catch(IllegalArgumentException ex) {}

        verify(nancy.manageIncome(request, response, nancy, "abc"));
    }

(为什么?基本上,
when
仅在mock上的方法返回后被调用,因此mock可以根据刚刚发生的调用来确定其未来的存根。
在mock上调用方法之前需要调用verify
,这样它就不会将验证与来自被测系统的实际调用混淆,并抛出或返回

哪一行?错误消息中有更多信息吗?错误在第五行,即,try{
try{
不会抛出
AssertionError
,如果这是该行,则它不会运行此代码,即代码已被修改,但未编译或部署。
/* BAD */  verify(nancy.manageIncome(request, response, nancy, "abc"));
/* GOOD */ verify(nancy).manageIncome(request, response, nancy, "abc");