通过TextView传递的Android测试AsyncTask

时间:2013-03-01 18:59:03

标签: android android-asynctask mocking android-testing

我有一个AsyncTask我想写一个测试。它有一个传入的TextView:

public LoadAssetTask(TextView target, boolean skipSingleLineBreak, InputStream in) { ...}

如何为此编写Adroid JUnit测试?有没有办法使用Mock对象模拟一个带有文本字段的活动,我讨厌创建一个完整的活动或使用一个已经因为我想测试这个类。我尝试使用模拟活动,但你必须将它添加到清单中,我不想为我拥有的每个AsyncTask都这样做。

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用android.test.ActivityInstrumentationTestCase2?此类为另一个Activity中的方法运行JUnit测试。实际上,它是唯一方式对Activity中的方法(或Activity的包含类中的方法)运行JUnit测试。 AsyncTask必须在Android上下文中运行(因为它使用Android线程API),但我认为ActivityInstrumentationTestCase2可以与进程中的任何线程进行通信。

ActivitInstrumentationTestCase2的文档位于http://developer.android.com/tools/testing/testing_android.html