场景:使用AsyncTask和用户界面更新解决方案的Android单元测试
我想单元测试我的应用程序的onClick处理程序。 Onclick根据REST API进行简单搜索,返回结果并更新UI。
详情:
的onclick执行的的AsyncTask,在doInBackground查询REST API并返回结果。 onPostExecute接受结果并使用数据为ListView分配一个新的ListAdapter。
问题:
的onPostExecute没有得到通过测试运行器调用,因为它是在相同的UI线程并阻止呼叫。有几种模式可以解决这个问题。但是,如果我将AsyncTask放入Runnable中并使用LatchCountdown等待结果,则会得到CalledFromWrongThreadException。
是否有一个很好的解决方案单元测试一个AsyncTask的UI更新?或者我可以实现的更可测试的设计?
这听起来更像是一个ActivityInstrumentationTestCase ... – dmon
这是在ActivityInstrumentationTestCase2类中完成的。 – bcdennis72
你的asynctask应该运行良好,然后...... – dmon