gpt4 book ai didi

使用 AsyncTask 和 UI 更新解决方案的 Android 单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:01 24 4
gpt4 key购买 nike

场景:

我正在尝试对我的应用程序的 onClick 处理程序进行单元测试。 Onclick 针对 REST API 进行简单搜索,返回结果并更新 UI。

详细信息:

Onclick 执行一个AsyncTask,doInBackground 查询REST API 并返回结果。 onPostExecute 获取结果并将新的 ListAdapter 分配给包含数据的 ListView。

问题:

onPostExecute 不会被测试运行程序调用,因为它在同一个 UI 线程上并阻止调用。有几种模式可以处理这个问题。但是,如果我将 AsyncTask 放在 Runnable 中并使用 LatchCountdown 等待结果,我会得到 CalledFromWrongThread 异常。

是否有一个好的解决方案来对执行 UI 更新的 AsyncTask 进行单元测试?还是我可以实现的更具可测试性的设计?

最佳答案

您想在 Ui Thread 上运行测试

runOnUiThread(new Runnable() {
public void run() {
onPostExecute(...)

}
});

关于使用 AsyncTask 和 UI 更新解决方案的 Android 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418947/

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