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/