我正在尝试使用espresso进行一些导航测试。其实,我想检查一下刚开始后是否已经通过使用主屏幕上的Back键关闭了应用程序。 这是我正在使用的一段代码。
impl<'f, T: 'static> Consumer<T> where T: FromForm<'f> {
fn new(form: Form<'f, T>) -> Self {
Consumer(form.into_inner())
}
fn get(&self) -> &T {
&self.0
}
}
实际上,由于以下异常,我的测试失败了:
android.support.test.espresso.NoActivityResumedException:按下并杀死了应用程序
我已经在stackoverflow中看到了一些有关使用try / catch块的主张,但我想知道是否有更合适的方法来做到这一点?
How to test android app has closed with Espresso
Android - Espresso test with pressBack
编辑: 因此,似乎该模板是可行的方法:
class NavigationTests {
@get:Rule
val mActivityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)
@Test
fun backOnEmptyHomeMustExit(){
Espresso.pressBack()
Assert.assertTrue(mActivityTestRule.activity==null)
}
}
答案 0 :(得分:0)
简短答案:
使用Espresso.pressBackUnconditionally()
。
我已经检查了3.1.1版
示例:
Espresso.pressBackUnconditionally()
assertTrue(activityRule.activity.isDestroyed)
爆炸:
如您在Expresso source code中所见,它将false
标志传递给PressBackAction
,以便它不会引发异常。