如何创建以初始化或创建状态启动的 ActivityScenario?

问题描述 投票:0回答:1

Google 在他们的文档中讨论了如何使用 ActivityScenarios 及其函数

moveToState
手动转换被测 Activity 的状态。但是无论我做什么,当我到达我的单元测试代码开始执行的位置时,我的 Activity 已经处于 RESUMED 状态。不管我是直接用
ActivityScenario
ActivityScenarioRule
还是新的kotlin扩展
launchActivity

我在

@RunWith(AndroidJUnit4::class)
文件夹中使用
/test
作为单元测试运行测试,而不是
/androidTest

不像他们的对手

launchFragment
launchActivity
没有我可以设置的参数
initialState

如果我唯一可以移动到的状态是 DESTROYED,

moveToState
的意义何在?我需要在
onCreate
之后但在
onStart
之前连接东西!

参考:https://developer.android.com/guide/components/activities/testing

android android-activity android-testing
1个回答
0
投票

我需要在

onCreate
之后但在
onStart
之前连接东西!

如果这正是您想要的,请尝试使用 Hilt 进行依赖项注入, 并将单元测试中的实例绑定替换为

@TestInstallIn
,并使用
@SetUp
块中的存根实例做任何你想做的事情。

注意:此时您仍然无法访问处于

CREATED
状态的Activity实例。

参见:https://developer.android.com/training/dependency-injection/hilt-testing#replace-binding


在使用 Hilt 之前,我也在努力在单元测试中重新替换数据源,希望这能有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.