我在Robolectric跑步者中测试代码。正在测试的代码验证它没有在主线程上执行:
if (Looper.getMainLooper().getThread() == java.lang.Thread.currentThread()) {
new IllegalStateException("Method called on the UI thread");
}
Robolectric测试提出了这个例外,我不想这样做。
我尝试从Robolectric.getBackgroundScheduler()
运行代码,但我有例外。
我的测试如何在不同的线程中运行?
答案 0 :(得分:0)
如注释中所建议,检查可以使用实用程序方法:
static void checkMainThread() {
if (isRunningInRobolectric()) {
return;
}
if (Looper.getMainLooper().getThread() == java.lang.Thread.currentThread()) {
new IllegalStateException("Method called on the UI thread");
}
}
static boolean isRunningInRobolectric() {
return "robolectric".equals(Build.FINGERPRINT);
}