我需要你的帮助:
我有这个方法:
public class MyTestClass {
protected void foo(JSONObject result, String text){
String userId = result.optString("name");
mApi.sendInfo(userId, text, mListener);
}
}
在 Mockito 我做:
@Test
public void whenFooIsCalledThenSendInfoGetsCalled(){
MyTestClass testClassSpy = spy(mMyTestClass);
JSONObject jsonOb = mock(JSONObject.class);
when(jsonOb.optString("name")).thenReturn("something");
testClassSpy.foo(eq(jsonOb), anyString());
....
some verification....
问题是,当调用 foo 方法时,JSONObject 结果为空。我似乎无法让它工作。我认为如果我模拟该对象并使其在调用 optString("name") 后返回一个字符串,将解决这个问题,但似乎 NPE 就是我得到的。我究竟做错了什么?
谢谢