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

The*_*Boy 13 testing user-interface junit multithreading android

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

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

The*_*der 20

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

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

更新:

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

你也许可以使用

new Handler(context.getMainLooper()).post(runnable);
Run Code Online (Sandbox Code Playgroud)