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