我正在使用 mockito 作为模拟框架。我这里有一个场景,我的 when(abc.method()).thenReturn(value) 没有返回值,而是返回 null。
这是我的类(class)和测试的样子。
public class foo(){
public boolean method(String userName) throws Exception {
ClassA request = new ClassA();
request.setAbc(userName);
ClassB response = new ClassB();
try {
response = stub.callingmethod(request);
} catch (Exception e) {
}
boolean returnVal = response.isXXX();
return returnVal;
}
下面是测试
@Test
public void testmethod() throws Exception{
//arrange
String userName = "UserName";
ClassA request = new ClassA();
ClassB response = new ClassB();
response.setXXX(true);
when(stub.callingmethod(request)).thenReturn(response);
//act
boolean result = fooinstance.lockLogin(userName);
//assert
assertTrue(result);
}
stub 使用 mockito 模拟,即使用 @Mock。测试在类 foo 中抛出 NullPointerException near boolean retrunVal = response.isXXX();
最佳答案
stub.callingmethod(request).thenReturn(response) 的参数匹配器正在比较引用相等性。你想要一个更宽松的匹配器,就像我想的那样:
stub.callingmethod(isA(ClassA.class)).thenReturn(response);
关于java - mockito stub 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6205013/