我正在使用Mockito 3.1.0。
我试图用以下语法修改我的方法:
when(mockedObject.myMethod(any(HttpServletRequest.class)).thenReturn(1);myMethod只是:
public Integer myMethod(HttpServletRequest request) {
return 0;
}在我正在测试的方法中,只需通过以下方法调用:
int r = myObject.myMethod(request);但我得到了:
org.mockito.exceptions.misusing.PotentialStubbingProblem:
Strict stubbing argument mismatch. Please check:
- this invocation of 'myMethod' method:
mockedObject.myMethod(null);
-> at somefile.java:160)
- has following stubbing(s) with different arguments:
1. mockedObject.myMethod(null);
-> at somefileTest.java:68)发布于 2021-05-25 15:22:36
正如所解释的,如果提供的参数为空,则any(myClass) any() 无法工作,只有any()执行解释的这里操作。在我的例子中,request是空的,所以any(HttpServletRequest.class)无法捕捉它。我把它改了
when(mockedObject.myMethod(any(HttpServletRequest.class)).thenReturn(1);如果您确信它将为空,则为
when(mockedObject.myMethod(null)).thenReturn(1);如果你想抓住所有的案子
when(mockedObject.myMethod(any())).thenReturn(1);另一种方法是使用ArgumentMatchers
when(mockedObject.myMethod(ArgumentMatchers.<HttpServletRequest>any())).thenReturn(1);谢谢@xerx593 593的解释。
https://stackoverflow.com/questions/67688330
复制相似问题