Android单元测试:模拟上下文也返回循环器



这是我的示例代码:
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);
    }
}

相关内容

  • 没有找到相关文章

最新更新