gpt4 book ai didi

android - 如何自动执行将多个模拟 Intent 发送到 Android Activity 的测试?

转载 作者:搜寻专家 更新时间:2023-11-01 07:39:42 24 4
gpt4 key购买 nike

我正在尝试通过 Eclipse 中的 Android 检测工具和 Android JUnit 将模拟 Intent 发送到 Android Activity 。

我能够成功创建一个将一个 Intent 发送到 Activity 的测试,但我想自动执行此操作并发送多个连续的 Intents 这样我就可以使用作为“额外”放入 Intent 中的许多数据来测试 Activity。我的代码(适用于单个 Intent)如下:

public class SearchTest extends ActivityInstrumentationTestCase2<SearchResults> {

private ListActivity mActivity;
private ArrayList<String> testManifest = new ArrayList<String>();
TextView tv;


public SearchTest() {
super("org.fdroid.fdroid", SearchResults.class);
}//SearchTest

@Override
protected void setUp() throws Exception{
setUpTestManifest();
super.setUp();
setActivityInitialTouchMode(false);
Intent i = new Intent(Intent.ACTION_SEARCH);
i.setClassName("org.fdroid.fdroid", "org.fdroid.fdroid.SearchResults");
i.putExtra(SearchManager.QUERY, testManifest.get(0));
setActivityIntent(i);
mActivity = getActivity();
tv = (TextView) mActivity.findViewById(R.id.description);
}//setUp

public void testSearchResult(){
assertTrue(mActivity.getListView().getCount() > 0);
}//testSearchResult

public void setUpTestManifest(){
//populate the test manifest
testManifest.add("Sample Key Word 1");
testManifest.add("Sample Key Word 2");
testManifest.add("Sample Key Word 3");
}//setupManifest

}//SearchTest

如果我可以在 testManifest 中包含数百个项目并为每个项目创建一个 Intent 和测试,我如何才能完成这项工作?

最佳答案

您是否尝试过将 Activity 的启动从设置代码中拉出并放入测试方法中的循环中?例子,

protected void setUp() {
setUpTestManifest();
super.setUp();
}

public void testSearchResult(){
for (String query : testManifest) {
setActivityInitialTouchMode(false);
Intent i = new Intent(Intent.ACTION_SEARCH);
i.setClassName("org.fdroid.fdroid", "org.fdroid.fdroid.SearchResults");
i.putExtra(SearchManager.QUERY, query);
setActivityIntent(i);
mActivity = getActivity();
tv = (TextView) mActivity.findViewById(R.id.description);
assertTrue(mActivity.getListView().getCount() > 0);
mActivity.finish(); // close the activity
setActivity(null); // forces next call of getActivity to re-open the activity
}
}

-丹

关于android - 如何自动执行将多个模拟 Intent 发送到 Android Activity 的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com