设想:
我正在尝试对我的应用程序的 onClick 处理程序进行单元测试。Onclick 对 REST API 进行简单搜索,返回结果并更新 UI。
细节:
Onclick 执行一个 AsyncTask,doInBackground 查询 REST API 并返回结果。onPostExecute 获取结果并将新的 ListAdapter 分配给带有数据的 ListView。
问题:
onPostExecute 不会被 Test Runner 调用,因为它位于同一个 UI 线程上并阻止调用。有几种模式可以处理这个问题。但是,如果我将 AsyncTask 放在 Runnable 中并使用 LatchCountdown 等待结果,则会收到 CalledFromWrongThread 异常。
是否有一个很好的解决方案来对进行 UI 更新的 AsyncTask 进行单元测试?还是我可以实现的更可测试的设计?