为什么 Espresso 在测试完成后离开应用程序?如何阻止它这样做
Why does Espresso leave the app after the test has finished? How to stop it from doing that
在 Android Studio 的 androidTest 文件夹中,我有这个测试用例:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginActivityTest {
@Rule
public ActivityTestRule<LoginActivity> activityTestRule =
new ActivityTestRule<>(LoginActivity.class);
@Test
public void teamsListIsSortedAlphabetically() {
onView(withId(R.id.etEmail)).perform(click(), replaceText("asd@asd.vf")
);
onView(withId(R.id.etPassword)).perform(click(), replaceText("asdasd")
);
onView(withId(R.id.bLoginSubmit)).perform(click());
}
}
应用程序启动 LoginActivity,登录,下一个 activity 显示 1-2 秒,然后退出 activity,让我留在启动器屏幕上。如何让 Espresso 停留在该屏幕上?
抱歉,这是不可能的。
请阅读此 Google 参考资料:Automating User Interface Tests
Espresso、Robotium、Calabash 和其他 UI 测试框架是为简短的交互测试事件而制作的。它模拟用户的特定行为 - 运行 应用程序,执行一些技巧(如果成功)而不是关闭应用程序。
当然,Espresso 允许您创建自定义空闲资源,而不是在应用程序中注册它。
让测试休眠特定时间的最简单方法是使用方法 Thread.sleep(time_in_miliseconds)
,但正如我所说,这与自动化测试的想法背道而驰。
在 Android Studio 的 androidTest 文件夹中,我有这个测试用例:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginActivityTest {
@Rule
public ActivityTestRule<LoginActivity> activityTestRule =
new ActivityTestRule<>(LoginActivity.class);
@Test
public void teamsListIsSortedAlphabetically() {
onView(withId(R.id.etEmail)).perform(click(), replaceText("asd@asd.vf")
);
onView(withId(R.id.etPassword)).perform(click(), replaceText("asdasd")
);
onView(withId(R.id.bLoginSubmit)).perform(click());
}
}
应用程序启动 LoginActivity,登录,下一个 activity 显示 1-2 秒,然后退出 activity,让我留在启动器屏幕上。如何让 Espresso 停留在该屏幕上?
抱歉,这是不可能的。
请阅读此 Google 参考资料:Automating User Interface Tests
Espresso、Robotium、Calabash 和其他 UI 测试框架是为简短的交互测试事件而制作的。它模拟用户的特定行为 - 运行 应用程序,执行一些技巧(如果成功)而不是关闭应用程序。
当然,Espresso 允许您创建自定义空闲资源,而不是在应用程序中注册它。
让测试休眠特定时间的最简单方法是使用方法 Thread.sleep(time_in_miliseconds)
,但正如我所说,这与自动化测试的想法背道而驰。