android - 有没有办法在浓缩咖啡测试之间重置应用程序或活动?
问题描述
我正在运行 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 调用中运行每个应用程序的测试。
每次测试运行后,被测应用程序将被自动清理。
解决方案
我能够找到答案。
我最终使用了AndroidTestOrchestrator。
使用 AndroidJUnitRunner 1.0 或更高版本时,您可以访问一个名为 Android Test Orchestrator 的工具,该工具允许您在应用程序自己的 Instrumentation 调用中运行每个应用程序的测试。
每次测试运行后,被测应用程序将被自动清理。
推荐阅读
- django - 不存在的变量的完整性错误
- docker - 如何将 openwrt 镜像作为 docker 镜像运行
- android - 单击通知 FCM 时未打开所需的活动
- php - 自定义 tag.php 模板
- yii2 - 如何在 yii2 中手动向供应商添加扩展
- javascript - 多次调用函数并保存结果
- android - 如何使用 NativeScript 获取主 Google 帐户?
- javascript - 类型错误:this.props.weather 未定义
- git - ssh:无法解析主机名 git:名称或服务未知 致命:无法从远程存储库读取
- python - 无法在 python(jupyter)中创建术语文档矩阵