我正在使用 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 可识别?
帮助!