开发者

Testing Android activity with async tasks

How do you create unit tests for an Android activity that starts async tasks in onCreate? I would like to test the r开发者_StackOverflow中文版esult of these tasks.


It is hard to write tests for a lot of Android functionality, since you can't instantiate classes like Activity outside of Android.

You might be better off doing a true unit test...test the function whose behavior you care about in isolation. Don't try to test it in the context of async task, activity, etc.

You might need to refactor your code a little bit to be able to do that, but its worth it to have testable code!


Running true units tests as mentioned in Cheryl's answer would be ideal. However if you still find yourself wanting to test the result AsyncTasks or any long running asynchronous operation in an Activity Test, Espresso is the silver bullet.

Espresso automatically waits for AyscTasks to complete and the developer can manually tell Espresso to wait for custom background tasks running via the IdlingResource APIs.

Here's a tutorial to help you get started: http://blog.sqisland.com/2015/04/espresso-custom-idling-resource.html

IdlingResource documentation: http://developer.android.com/reference/android/support/test/espresso/IdlingResource.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜