我无法在robolectric(版本1.1)测试用例中获取主UI线程。我正在测试的应用方法有以下检查:
if (Thread.currentThread() != Looper.getMainLooper().getThread()) {
throw new IllegalStateException(
"This method should be called from the Main UI Thread");
}
}
以下列方式调用时,此检查失败:
@Test
public void maTest() {
Runnable task = new Runnable() {
@Override
public void run() {
adapter.testThreadPrecondition();
}
};
new Handler(Looper.getMainLooper()).post(task);
}
还尝试了“runOnUiThread”,并且同样检查失败。到底是怎么回事?不同的主要掠夺者?
答案 0 :(得分:0)
将检查looper线程是否是当前线程的代码放入方法中,比如base
。
然后,在单元测试中使用模拟框架,例如Mockito到mock that method,以便成功返回。