我正在运行espresso测试,用户可以点击一个按钮来添加一些东西到我们的应用程序活动中,我检查以确保它确实添加了。
我想在这个活动上运行更多的测试,但对于每一个测试,我都想有一个干净的测试记录。
在@After规则中,这是可能的吗?
编辑:这是我到目前为止所拥有的,但它不会重置。有没有更好的方法?
private lateinit var activityScenario: ActivityScenario<MainActivity>
@Before
fun setup() {
activityScenario = ActivityScenario.launch(MainActivity::class.java)
}
@After
fun tearDown(){
activityScenario.moveToState(Lifecycle.State.DESTROYED)
}我也试过了:
private lateinit var scenario: ActivityScenario<MainActivity>
@Before
fun setUp() {
Intents.init()
}
@After
fun tearDown() {
Intents.release()
scenario.close()
}示例测试如下:
@Test
fun test() {
val intent = Intent(ApplicationProvider.getApplicationContext(), MainActivity::class.java)
.putExtra("title", "Testing rules!")
scenario = ActivityScenario.launch(intent)
//tests
}更新:我找到了答案。
我最终使用了AndroidTestOrchestrator。
当使用AndroidJUnitRunner 1.0或更高版本时,您可以访问名为Android Test Orchestrator的工具,该工具允许您在自己的Instrumentation调用中运行应用程序的每个测试。
被测应用程序将在每次测试运行后自动清除。
发布于 2021-08-10 21:31:38
我找到了答案。
我最终使用了AndroidTestOrchestrator。
当使用AndroidJUnitRunner 1.0或更高版本时,您可以访问名为Android Test Orchestrator的工具,该工具允许您在自己的Instrumentation调用中运行应用程序的每个测试。
被测应用程序将在每次测试运行后自动清除。
https://stackoverflow.com/questions/68733184
复制相似问题