java.lang.AssertionError : in Mockito. 如何解决?

标签 java maven intellij-idea mockito

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"));
    }

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

如何解决?我正在使用 Mockito。

最佳答案

我无法告诉您这是否与您的 AssertionError 有关,但您滥用了 verify 方法,该方法(与 when) 应该只包装有问题的模拟而不是整个方法调用。

/* BAD */  verify(nancy.manageIncome(request, response, nancy, "abc"));
/* GOOD */ verify(nancy).manageIncome(request, response, nancy, "abc");

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

关于java.lang.AssertionError : in Mockito. 如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14865415/

相关文章:

java - 管理 Android Gradle 依赖项的最佳方式

java - 泛型实例化和 Lambdas

java - 在intellij中的ant下的子进程中运行javac时,如何使错误消息可点击

java - Intellij 上的 Android 显示错误 : is not an activity

java - hadoop 和 yarn 的 Maven 依赖项

intellij-idea - 如何仅在主编辑器窗口上启用 IdeaVim?

java - 如何增加java/scala中的线程分布?

java - Android Studio 与 Galaxy S7 - Android 7.0

java - Spring saml 演示构建问题

java - mvn 不生成所有 Artifact