场景:
我正在尝试对应用程序的onClick处理程序进行单元测试。点击执行对REST API的简单搜索,返回结果并更新UI。
细节:
OnClick执行AsyncTask,doInBackground查询REST API并返回结果。onPostExecute将结果取出并使用数据为ListView分配新的ListAdapter。
问题:
由于在同一个UI线程上且阻止调用,因此Test Runner不会调用onPostExecute。有几种模式可用于处理此问题。但是,如果我将AsyncTask放入Runnable中并使用LatchCountdown等待结果,则会出现CalledFromWrongThread异常。
是否有好的解决方案可以对执行UI更新的AsyncTask进行单元测试?或者有什么更具可测试性的设计可以实现?