如何将 Android SingleLaunchActivityTestCase 转换为 ActivityTestRule? (仪器仪表单元测试)

2024-02-15

的文档SingleLaunchActivityTestCase https://developer.android.com/reference/android/test/SingleLaunchActivityTestCase说这个类现在已被弃用,应该替换为ActivityScenarioRule https://developer.android.com/reference/androidx/test/ext/junit/rules/ActivityScenarioRule or ActivityTestRule https://developer.android.com/reference/androidx/test/rule/ActivityTestRule。但这是如何做到的呢?

SingleLaunchActivityTestCase允许 Activity 启动一次并保持打开状态;那么在这段时间内可以运行多个测试,然后该 Activity 被关闭。ActivityTestRule似乎没有这个功能 - 它总是为每个重新启动活动@Test method.

那么是否有可能使ActivityTestRule启动一次 Activity 并保持其打开状态,如何确保context (from activityTestRule.getActivity()) 对于每个都不为空@Test功能?

示例代码here https://developer.android.com/training/testing/espresso/setup.


Use the 默认情况下不启动 Activity 的构造函数 https://developer.android.com/reference/android/support/test/rule/ActivityTestRule#ActivityTestRule(java.lang.Class%3CT%3E,%20boolean,%20boolean)(设置launchActivity论证false)。然后使用launchActivity() https://developer.android.com/reference/android/support/test/rule/ActivityTestRule#launchactivity在您的设置中,但不是在每个测试方法中。这样您就可以自己启动一次,但每个测试都将在同一个实例上运行。

您可能还希望在测试类结束时显式完成活动以进行清理。

注意:但这通常不是测试的最佳实践,因为测试可能相互依赖(这不是一个好主意),或者根据它们运行的​​顺序提供不正确的结果等,因为活动状态是持久的在这种情况下,从一个测试到下一个测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Android SingleLaunchActivityTestCase 转换为 ActivityTestRule? (仪器仪表单元测试) 的相关文章

随机推荐