2)由于测试类型没有指定待测活动类型,因此在类型的构造函数里,采用反射机制通过应用主界面的类型名称获取其类型构造测试用例,如代码的第16行。
3)在测试的准备函数setUp中,一般会通过调用getInstrumentation()和getActivity()函数获取当前测试的仪表盘对象和待测应用启动的活动对象,并创建robotium自动化测试机器人solo。跟仪表盘测试用例中的setUp函数一样,禁用触控模式、创建启动活动的意图对象这些操作都应该在getActivity()函数之前调用,如第20行。
4)因为robotium进行的是集成测试,在测试过程中可能会打开多个活动,所以在测试结束后的扫尾函数tearDown中,会调用robotium API关闭所有的已打开活动,为后面执行的测试用例恢复测试环境。
robotium的API设计类似后文将要讲解的selenium的机器人测试方式,可以将solo对象看成一个机器人,它的每个API可以看成机器人可以执行的一个动作,如waitForView、searchButton等,robotium的API名称都采用谓语+宾语的方式命名,而且每个API都有完整的注释说明,本书就不再详述各API的使用方法。代码清单3-11就是针对3.2.4小节中的待测应用执行集成测试的一个示例。
代码清单3-11使用robotium编写集成测试用例
1. public void test添加书籍() throws Exception {
2. _solo.clickOnText("添加");

3. _solo.sleep(500);
5.
6. //
7. // 在robotium中,getEditText会过滤出所有EditText类型的控件
8. // 而getEditText函数参数是过滤后EditText控件的索引号
9. //
10.
11. // 在标题文本框中输入Moonlight
12. EditText text = _solo.getEditText(0);
13. _solo.clearEditText(text);
14. _solo.enterText(text, "Moonlight");
15.
16. // 在作者文本框中输入David
17. text = _solo.getEditText(1);
18. _solo.clearEditText(text);
19. _solo.enterText(text, "David");
20.
22. text = _solo.getEditText(2);
23. _solo.clearEditText(text);
24. _solo.enterText(text, "Feb 21, 2011");
25.
26. _solo.clickOnText("保存");
27. _solo.clickOnText("保存");
28. }
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-27036-2.html
这样才真正划清12海里
DF21