- java基础知识,如基本的数据结构、语法结构、类、继承等
- 对Android系统较为熟悉,了解四大组件,会编写简单的Android应用程序
- 熟悉Eclipse IDE使用方法
- 有足够的耐心与探索精神,遇到问题可以熟练的Google
- 安装jdk,配置环境变量,如果不会请自行Google
- 下载安装Android SDK,并更新
- 下载Eclipse,并安装ADT插件,集成Android SDK
- 下载Robotium官方例子以及最新的JAR包
- 打开Eclipse导入被测试工程
点击查看大图
- 创建测试工程:选择Android Test Project,并点击下一步
点击查看大图
- 输入工程名,并点击下一步
点击查看大图
- 选择被测工程NotePad,并点击完成
点击查看大图
- 在测试工程中新建lib文件夹
点击查看大图
- 将下载好的Robotium jar包拷入lib中,并在build path中将jar包引入工程
点击查看大图
- 打开测试工程中的manifest.xml文件,修改如下
点击查看大图
- 新建junit test case,选择junit4,并输入类名,点击完成
点击查看大图
- 打开新建的测试类,修改继承ActivityInstrumentationTestCase2<NotesList>,创建构造方法,并编写测试代码,具体如图
点击查看大图
package com.example.android.notepad.test; import android.test.ActivityInstrumentationTestCase2; import com.example.android.notepad.NotesList; import com.jayway.android.robotium.solo.Solo; public class NotePadTest extends ActivityInstrumentationTestCase2 { private Solo solo;//声明Solo public NotePadTest()//构造方法 { super(NotesList.class); } @Override public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } @Override public void tearDown() throws Exception { solo.finishOpenedActivities(); } public void testAddNote() throws Exception { //点击add note按钮 solo.clickOnMenuItem("Add note"); //比对结果 solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); //在第一个TextEdit控件上输入内容 solo.enterText(0, "Note 1"); //返回上个界面 solo.goBack(); //点击菜单中的Add note solo.clickOnMenuItem("Add note"); //在第一个EditText中输入内容 solo.enterText(0, "Note 2"); //返回NotesList activity solo.goBackToActivity("NotesList"); //截屏 solo.takeScreenshot(); boolean expected = true; boolean actual = solo.searchText("Note 1") ; solo.searchText("Note 2"); assertEquals("Note 1 and/or Note 2 are not found", expected, actual); } }
- 编写完成后,打开模拟器或者连接上真机,右击测试类,选择Android junit Test
点击查看大图
- Eclipse会切换到junit界面,此时模拟器(真机)会自动执行测试,通过左边界面可以看到运行结果
点击查看大图
- 一个简单的测试就结束了。如果你没有遇到问题,那么恭喜你继续更深一步学习,如果你遇到问题了,不要急~请先确保你的操作过程没有出任何错误,其次我列出你可能遇到的错误,如果还是没有解决请Google或者联系我们
1、最常见的:java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo
解决方法:如图操作后再clean工程