package com.example.demo1.test;
import com.example.demo1.MainActivity;//导入目标项目的启动类
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import com.robotium.solo.Solo;
public class TestDemo1 extends ActivityInstrumentationTestCase2<MainActivity>{//继承目标项目的启动类
private Solo solo;//初始化一个solo对象
public TestDemo1() {//在构造函数处标明继承自目标项目的启动类
super(MainActivity.class);
@Override
public void setUp() throws Exception {//在测试开始之前会调用这个方法,这里来创建一个Solo对象
solo = new Solo(getInstrumentation(), getActivity());
public void testcase001() throws Exception {
//等待 Activity "MainActivity" 启动
assertTrue("无法启动启动类", solo.waitForActivity("MainActivity", 30000));
solo.sleep(5000);
//输入文字:"131243"
solo.enterText((EditText)solo.getView("edtInsertName"), "说些什么好呢?");
solo.sleep(2000);
//清空输入框的内容
solo.clearEditText((EditText)solo.getView("edtInsertName"));
//按下 按钮 "绿色"
solo.clickOnButton("^绿色$");
solo.sleep(2000);
//按下 按钮 "黄色"
solo.clickOnButton("^黄色$");
solo.sleep(2000);
//按下 按钮 "蓝色"
solo.clickOnButton("^蓝色$");
solo.sleep(2000);
//按下 TextView "看我变变变~~~"
solo.clickOnText("^看我变变变~~~$");
solo.sleep(5000);
@Override
public void tearDown() throws Exception {//一个测试用例结束的时候会调用这个方法
solo.finishOpenedActivities();//这个方法将结束掉所有在测试执行过程中打开的activity
六、一些特殊设置的说明
1.添加到库内需要先新建Lib目录,再把robotium-solo-5.2.1.jar放到里面,这样移动项目就不会找不到
2.测试项目的AndroidManifest.xml里面 需要在8以上,而且要跟被测试的项目一样大
3.需要勾选
4.最细节的就是:构造方法必须是无参数的,新建的测试用例一般都是有参数的:
public TestHelloWorldCase() {
super(HerlloActivity.class);
}
5.测试APK的时候需要重签名,然后再安装进去,才可以正常测试
6.如何配置Robotium的帮助提示
右键点击项目-Build Path-configure Build Path

7.robotium不同版本的方法不同
robotium的getCurrentListViews
1.版本3.6版本和4.1以上版本的表达方式
3.6版本:ArrayList lw = solo.getCurrentListViews();
4.1版本以上:ArrayList lw = solo.getCurrentViews(ListView.class);
ArrayList imageList=solo.getCurrentViews(ImageView.class);得到的即是ImageView
ArrayList imageList=solo.getCurrentViews(ImageView.class,parentView);
8.如何获取控件ID-两种方法
(1)Android 实用工具Hierarchy Viewer实战
是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat
需要运行测试项目,在调试环境下才可以检测到模拟器的
(2)运行命令行记录log,然后点击对应Activity,接着可以在logcat看到