的文档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(使用前将#替换为@)