在我的活动中,我正在通过主要活动调用第二个活动startActivityForResult
.在我的第二个活动中,有一些方法可以完成此活动(可能没有结果),但是,只有其中一个返回结果.
例如,从主要活动我称之为第二个.在这项活动中,我正在检查手机的某些功能,例如是否有相机.如果它没有,那么我将关闭此活动.此外,在准备期间MediaRecorder
或MediaPlayer
如果出现问题,我将关闭此活动.
如果其设备有摄像头并完全录制,则在用户点击完成按钮后录制视频后,我会将结果(录制视频的地址)发送回主要活动.
如何检查主要活动的结果?
android android-intent android-activity startactivityforresult
我正在尝试使用浓缩咖啡实施一些导航测试。实际上,我想在重新启动后检查应用程序是否已通过使用主屏幕上的后退键关闭。这是我正在使用的一段代码。
class NavigationTests {
@get:Rule
val mActivityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)
@Test
fun backOnEmptyHomeMustExit(){
Espresso.pressBack()
Assert.assertTrue(mActivityTestRule.activity==null)
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,由于以下异常,我的测试失败了:
android.support.test.espresso.NoActivityResumedException:按下并杀死应用程序
我在 stackoverflow 中看到了一些关于使用 try/catch 块的提议,但我想知道是否有更合适的方法来做到这一点?
如何使用 Espresso 测试 android 应用程序已关闭
Android - 带有 pressBack 的 Espresso 测试
编辑:所以看起来这个模板是要走的路:
try {
pressBack();
fail("Should have thrown NoActivityResumedException");
} catch (NoActivityResumedException expected) {
}
Run Code Online (Sandbox Code Playgroud)