我有一个数据库组件依靠AsyncTask
来检索数据。一旦在应用程序中使用它将始终从UI线程调用,但我如何在JUnit测试中做到这一点,而不实例化一个Activity
(我只是没有一个活动,也不应该创建一个仅用于测试目的)?如何在没有Activity的情况下在Android JUnit测试中的UI线程中运行代码?
runOnUiThread()
是一种活动方法,所以它不是一个选项。有没有办法通过从Android测试库中获取一个或通过实现MockUiThread来模拟UI线程?
我有一个数据库组件依靠AsyncTask
来检索数据。一旦在应用程序中使用它将始终从UI线程调用,但我如何在JUnit测试中做到这一点,而不实例化一个Activity
(我只是没有一个活动,也不应该创建一个仅用于测试目的)?如何在没有Activity的情况下在Android JUnit测试中的UI线程中运行代码?
runOnUiThread()
是一种活动方法,所以它不是一个选项。有没有办法通过从Android测试库中获取一个或通过实现MockUiThread来模拟UI线程?
Android.OS.Handler应该能够更新ui。
要使用你要继承它,并在此改变的handleMessage()的处理来处理消息
更新:
我使用MonoDroid的,所以我不知道这是否是完全翻译的,但是,
您可以使用
new Handler(context.getMainLooper()).post(runnable);
谢谢,它也适用于普通的Android。 :)在另一个线程中,我读到我真正必须做的是在创建任何其他线程之前在UI线程中实例化一个AsyncTask,并且以下线程将自动知道UI线程,它似乎很好用!谢谢。 – 2011-04-27 06:32:44
这是很好的信息。我用Send来获取消息。 – vlad259 2012-01-18 16:41:00
什么是基类测试的? – 2011-04-26 14:03:35
'AndroidTestCase' – 2011-04-27 06:33:46