首页 > 解决方案 > 有没有办法在浓缩咖啡测试之间重置应用程序或活动?

问题描述

我正在运行 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 调用中运行每个应用程序的测试。

每次测试运行后,被测应用程序将被自动清理。

标签: androidkotlinandroid-espresso

解决方案


我能够找到答案。

我最终使用了AndroidTestOrchestrator

使用 AndroidJUnitRunner 1.0 或更高版本时,您可以访问一个名为 Android Test Orchestrator 的工具,该工具允许您在应用程序自己的 Instrumentation 调用中运行每个应用程序的测试。

每次测试运行后,被测应用程序将被自动清理。


推荐阅读