gpt4 book ai didi

android - 使用 robolectric 访问 UI 线程

转载 作者:太空狗 更新时间:2023-10-29 15:07:04 27 4
gpt4 key购买 nike

我在获取 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”,但同样的检查失败了。到底是怎么回事?不同的主循环器?

最佳答案

将检查循环线程是否为当前线程的代码放入方法中,比如 ValidateRunningOnLooperThread()

然后,在单元测试中使用模拟框架,例如Mockitomock that method刚刚成功返回。

关于android - 使用 robolectric 访问 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com