1. 创建一个简单的工程()作为被测程序,运行后显示如下界面:
2. 创建一个Test Project
1). 打开eclipse,选择File->New->Project…->Android Test Project,点击Next。
2). 在Test Project Name中输入测试工程的名称,如:HelloWorldTest。选择An existing Android Project,点击右边的Browse…按钮。
3). 选择被测工程,如之前创建的HelloWorldnp,点击OK按钮。
4). 会自动选择和输入Build Target和Properties,可以按照默认的,不用修改。
5). 一个新建的测试工程(HelloWorldTest)就创建好了,如下图:
3. 创建一个Test Case
1). 在HelloWorldTest->src->com.liliandroid.helloworld.test上,右击选择New->Class,创建一个Test Case。
2). 在Name中输入Test Case的名字,如:UITextTest。
3). 创建好的Test Case如下图:
4. 导入robotium.jar
1). 选择测试工程HelloWorldTest右击,选择Build Path->Configure Build Path…
2). 在打开的Properties for HelloWorldTest中点击Add External JARs…按钮。
3). 因为之前创建的工程的SDK是2.2的,所以选择robotium-solo-1.8.0.jar。
4). 点击OK按钮。
5. 修改Test Case
打开UITextTest.java,输入以下内容并保存:
package com.liliandroid.helloworld.test;
import android.test.ActivityInstrumentationTestCase2;
//此处导入的是被测试工程的activity
import com.liliandroid.helloworld.ActivityMain;
import com.jayway.android.robotium.solo.Solo;
publicclass UITextTestextends ActivityInstrumentationTestCase2<ActivityMain>{
//ActivityMain 为测试APK的启动activity
private Solo solo;
publicUITextTest() {
super("com.liliandroid.helloworld", ActivityMain.class);
}
publicvoid setUp()throws Exception {
super.setUp() ;
solo=newSolo(getInstrumentation(), getActivity());
}
publicvoidtestUI()throwsException {
booleanexpected =true;
booleanactual =solo.searchText("This") &&solo.searchText("is");
assertEquals("This and/or is are not found", expected, actual);
}
}
注:这个Case是测试运行了ActivityMain后的界面上是否有This和is这两个文字。
6. 运行测试程序
选择测试工程HelloWorldTest右击,选择Run As->AndroidJUnit Test运行测试程序
运行完后的测试结果界面(Pass)
运行完后的测试结果界面(Fail)
注:
1. 被测试的工程和测试的工程可以是不同的SDK,但是不知道有什么影响。
2. 这是在eclipse中进行测试的,也可以在模拟器或者手机上测试。如果需要直接在模拟器或者手机上测试,需要将测试包和被测试包改成相同的签名。(关于apk包的签名和重签名,请参考本人日志《重新签名APK文件》)