importorg.junit.Test;
importcom.jayway.android.robotium.solo.Solo;
importandroid.test.ActivityInstrumentationTestCase2;
public class TestCaseBascFrame extends ActivityInstrumentationTestCase2{
// /声明一个Solo对象,Solo实例封装了所有Robotium的可用方法
private Solo solo;
// 注意以下两个静态常量字符串,都在APK报重新签名时得到
// * 第一个是要测试的包名,和刚刚在AndroidMainfest.xml里配置的包名一致 附图 1::
// * 第二是被测程序的入口类
// 示例包名和入口类名在此文最后的附注图2 中有标注
private static final String TARGET_PACKAGE_ID = "Package name";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "Main activity";
// /声明一个Class类型的变量,用于ActivityInstrumentationTestCase2加载启动被测程序
private static Class launcherActivityClass;
// 声明一个标签用于日志的输出控制,便于调试
final String TAG = "Test->N01GetFirstPageMessage";
// 静态加载auncherActivityClass也就是被测程序主类
static{
try{
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}catch(ClassNotFoundException e){
throw new RuntimeException(e);
}
}
// /构造函数,传入TARGET_PACKAGE_ID,launcherActivityClass即可
public TestCaseBascFrame(){
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
// 在测试用例初始时执行,在这里初始化了Solo实例
public void setUp() throws Exception{
solo = new Solo(getInstrumentation(),getActivity());
}
// /在测试用例执行完毕执行,在这里销毁了测试中建立的所有实例,清除垃圾
public void tearDown() throws Exception{
solo.finishOpenedActivities();
}
// /测试用例的真正逻辑放在这里,个人建议函数以test开头
@Test
public void test() {
// 测试用例编写
fail("Not yet implemented");
}
}
附注图2
附注:一个经过re-sign.jar签过名的sohu.apk,图的package name和main activity 需要记下:
附图2:
附图1: