我的应用程序上有两个活动:登录活动 (loginActivity) 和第二个活动 (mainActivity)。我想用 Espresso 来测试 loginActivity 上的登录,所以我写了这个测试:
public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> {
public LoginActivityTest() {
super(LoginActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
getActivity();
}
public void testLogin() throws Exception {
onView(withId(R.id.button_log_in)).perform(click());
onView(withId(R.id.container)).check(matches(isDisplayed()));
}
}
问题是,当应用程序启动时,如果用户以前登录过,loginActivity 会立即启动 mainActivity,并且在执行测试时它会失败并出现错误:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.test.android.development:id/R.id.button_log_in
注意:如果我在运行测试之前启动应用程序并注销,错误就会消失。
提前致谢!