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