我正在尝试用浓缩咖啡实现一些导航测试。实际上,我想在重新启动后检查应用程序是否已通过使用主屏幕上的后退键关闭。
这是我正在使用的一段代码。
class NavigationTests {
@get:Rule
val mActivityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)
@Test
fun backOnEmptyHomeMustExit(){
Espresso.pressBack()
Assert.assertTrue(mActivityTestRule.activity==null)
}
}
实际上,由于以下异常,我的测试失败了:
android.support.test.espresso.NoActivityResumedException:按回并杀死应用程序
我在 stackoverflow 中看到了一些关于使用 try/catch 块的建议,但我想知道是否有更合适的方法来做到这一点?
如何使用 Espresso 测试 Android 应用程序已关闭
Android - 使用 pressBack 进行 Espresso 测试
编辑:
所以看来这个模板是正确的选择:
try {
pressBack();
fail("Should have thrown NoActivityResumedException");
} catch (NoActivityResumedException expected) {
}
简短回答:
Use Espresso.pressBackUnconditionally()
.
我检查过版本 3.1.1
Example:
Espresso.pressBackUnconditionally()
assertTrue(activityRule.activity.isDestroyed)
解释:
正如你所看到的快递源代码它过去了false
标记为PressBackAction
,这样它就不会抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)