在测试活动的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之间,所以你需要设置你的意图 。 这就是说,这并不能做预期的测试。