【发布时间】:2019-06-07 17:41:07
【问题描述】:
我正在尝试使用 espresso 进行一些导航测试。实际上,我想检查应用程序是否已在重新启动后使用主屏幕上的后退键关闭。 这是我正在使用的一段代码。
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 块的建议,但我想知道是否有更合适的方法来做到这一点?
How to test android app has closed with Espresso
Android - Espresso test with pressBack
编辑: 所以看来这个模板是要走的路:
try {
pressBack();
fail("Should have thrown NoActivityResumedException");
} catch (NoActivityResumedException expected) {
}
【问题讨论】:
-
捕获异常正是 espresso 自己的单元测试所做的:android.googlesource.com/platform/frameworks/testing/+/…。搜索“pressBack”。
-
好的,所以我想没有比这更好的方法了
try { pressBack(); fail("Should have thrown NoActivityResumedException"); } catch (NoActivityResumedException expected) { }无论如何谢谢
标签: exception-handling android-espresso back