【发布时间】:2013-01-30 16:03:37
【问题描述】:
我正在使用 Robotium 测试我的应用登录,但遇到了一些问题。我有两种不同的用户类型,所以我做了 3 次测试。每种类型一个,另一个登录失败。如果我单独执行它们,它们都会成功,但是如果我运行所有测试用例,它会运行一个,执行 tearDown(solo.finishOpenedActivities) 并且它不会重新启动活动以执行其他测试。所以在第二个测试中,当我要求 EditText 时,它说它不可用。
这是我的代码:
public class TestLogin extends ActivityInstrumentationTestCase2<MainActivity> {
private Solo solo;
public TestLogin() {
super("com.truekke4.test", MainActivity.class);
}
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
super.setUp();
}
@Override
public void tearDown() throws Exception {
getActivity().logout();
solo.finishOpenedActivities();
super.tearDown();
}
public void testUsuarioDesconocido() {
solo.clearEditText(0);
solo.enterText(0, "usuario desconocido");
solo.assertCurrentActivity("Error", MainActivity.class);
solo.clickOnButton("OK");
solo.clickOnButton("OK");
solo.assertCurrentActivity("Error", MainActivity.class);
}
public void testUsuario() {
solo.clearEditText(0);
solo.enterText(0, "usuario");
solo.clickOnButton("OK");
solo.assertCurrentActivity("Error", InicioUsuarioActivity.class);
}
public void testEmpresa() {
solo.clearEditText(0);
solo.enterText(0, "empresa");
solo.clickOnButton("OK");
solo.assertCurrentActivity("Error", InicioPymeActivity.class);
}
}
我必须手动重新启动活动? Create and Intent 和 startActivity(intent)?
我不必完成已打开的活动?或者我必须完成活动,但在 setUp() 中重新启动它们/它。如何重新启动或创建活动以使 Robotium 可识别?
救命!
【问题讨论】:
-
我认为你应该在你测试的方法中注销,否则它可以在每个下一个方法中登录。 (如果您登录某个应用程序并关闭它,它不会退出 - 这是相同的情况)