如何在没有Activity的Android JUnit测试中在UI线程中运行代码?

时间:2011-04-26 13:50:23

标签: android multithreading testing user-interface junit

我有一个依赖AsyncTask来检索数据的数据库组件。一旦在应用程序中使用它将始终从UI线程调用,但是我如何在JUnit测试中执行此操作而不实例化Activity(我只是没有活动,我也不应该创建一个仅用于测试目的)?

runOnUiThread()是一种活动方法,所以它不是一个选项。有没有办法通过从Android测试库中获取UI线程或通过实现MockUiThread来模拟UI线程?

1 个答案:

答案 0 :(得分:20)

Android.OS.Handler应该能够更新ui。

要使用处理程序,必须将其子类化并覆盖handleMessage()以处理消息

更新:

我正在使用monodroid,所以我不知道这是否完全可以翻译,但是,

您可以使用

new Handler(context.getMainLooper()).post(runnable);