这是我的示例代码:
SomeClass.java
public class SomeClass {
public SomeClass(Context mContext) {
final Looper looper = mContext.getMainLooper();
Handler mHandler = new Handler(looper);
}
}
SomeClassTest.java
public class SomeClassTest {
private SomeClass mSomeClass;
@Mock
private Context mContext;
@before
public void setup(){
mSomeClass = new SomeClass(mContext);
}
}
上面的代码在SomeClass
中的final Looper Looper = mContext.getMainLooper();
行生成了一个NullPointerException
。
如何设置模拟上下文对象以避免此异常?
假设您正在使用 Mockito,您可以向模拟对象添加模拟行为:
public class SomeClassTest {
private SomeClass mSomeClass;
private Looper mLooper;
@before
public void setup(){
mLooper = mock(Looper.class);
Context ctx = mock(Context.class);
when(ctx.getMainLooper()).thenReturn(mLooper);
mSomeClass = new SomeClass(mContext);
}
}
我是一名优秀的程序员,十分优秀!