在测试活动的onCreate期间开始使用Espresso来存根意图

我正在测试在onCreate()期间启动另一个活动的活动。 第二个活动是从startActivityForResult()开始的,然后主活动等待onActivityResult()

我试图用Espresso来测试这个,尝试用intending()来存储第二个活动,并且使用intended()来验证它是否发生了。

不过,似乎espresso-intents并不是用onCreate()方法启动的onCreate()来工作的( 请参阅这里最后几段的警告 )。

有没有人设法从onCreate()开始存根意图,如果是的话,怎么样?

通过使用以下Kotlin代码,我能够为自己工作:

 @Rule @JvmField val activityRule: IntentsTestRule<MainActivity> = object : IntentsTestRule<MainActivity>(MainActivity::class.java, true, false) { override fun beforeActivityLaunched() { super.beforeActivityLaunched() Intents.init() intending(hasComponent(LaunchedFromOnCreateActivity::class.java.name)).respondWith(Instrumentation.ActivityResult(RESULT_OK, null)) } override fun afterActivityLaunched() { Intents.release() super.afterActivityLaunched() } } 

一般的想法是,因为生命周期的事情发生在beforeActivityLaunched和afterActivityLaunched之间,所以你需要设置你的意图 。 这就是说,这并不能做预期的测试。