|
大神能帮我看看下面这段代码吗??这段代码想要实现的效果是:用户在登陆界面输入帐号密码后,进入到主界面,然后在主界面找到【会员中心】后,点击进入会员中心界面,会员中心界面上有2个文字,分别点击可以进入【个人资料】和【修改密码】界面,主要是测试点击这2个按钮后进入的界面是否是对的(想要每测试一个test就重新登陆一次)。现在test_1可以正确执行,但是test_2总是执行不成功,java我不太懂,分析不出到底是什么原因,用hierarchyviewer查看,第二次执行的时候,在登陆界面的输入密码的时候,其他几个activity貌似都没有关闭掉,请问这个应该如何解决啊??
public class ChannelTest extends ActivityInstrumentationTestCase2{
public Solo solo;
public Activity activity;
private static Class<?> launchActivityClass;
private static String mainActiviy = "com.mobile.android.ui.login.activity.LoginShow";
private static String packageName = "com.mobile.android.abc";
static {
try {
launchActivityClass = Class.forName(mainActiviy);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public ChannelTest() {
super(packageName,launchActivityClass);
}
@Override
protected void setUp() throws Exception {
super.setUp();
this.activity = this.getActivity();
this.solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
//测试进入个人资料界面
@Test
public void test_1() {
this.login();
solo.waitForText("个人资料", 1, 20000);
solo.clickOnText("个人资料");
boolean actual = solo.waitForText("个人资料界面", 1, 10000);
assertEquals("进入个人资料界面失败",true,actual);
}
//测试进入修改密码界面
@Test
public void test_2() {
this.login();
solo.waitForText("修改密码", 1, 2000);
solo.clickOnText("修改密码");
boolean actual = solo.waitForText("修改密码界面", 1, 30000);
assertEquals("进入修改密码界面失败",true,actual);
}
//用户登陆
public void login(){
solo.waitForText("会员登陆", 1, 2000);
solo.enterText(0, "admin");
solo.enterText(1, "123456");
solo.clickOnButton("登陆");
solo.waitForText("会员中心", 1,30000);
solo.clickOnText("会员中心");//进入会员中心界面
}
} |
|