Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓-带回压功能的浓缩咖啡测试_Android_Android Espresso - Fatal编程技术网

Android 安卓-带回压功能的浓缩咖啡测试

Android 安卓-带回压功能的浓缩咖啡测试,android,android-espresso,Android,Android Espresso,我正在尝试用Espresso框架测试我的应用程序。应测试在主活动中按back键时是否退出应用程序,以及在从主活动调用另一个活动然后按back键时是否显示主应用程序 public class MainActivityTest { @Rule public IntentsTestRule<MainActivity> intentsTestRule = new IntentsTestRule<>( MainActivity.class

我正在尝试用Espresso框架测试我的应用程序。应测试在主活动中按back键时是否退出应用程序,以及在从主活动调用另一个活动然后按back键时是否显示主应用程序

public class MainActivityTest {
    @Rule
    public IntentsTestRule<MainActivity> intentsTestRule = new IntentsTestRule<>(
            MainActivity.class
    );

    @Test
    public void test_pressBack() {
        try {
            pressBack();
            fail();
        } catch (NoActivityResumedException exc) {
            // test successful
        }
    }

    @Test
    public void test_anotherActivity_pressBack() {
        onView(withId(R.id.button1)).perform(click());
        pressBack();
        intended(hasComponent(new ComponentName(getTargetContext(), MainActivity.class)));
    }
}

关于第一次测试-您可以使用

Espresso.pressBackUnconditionally()
这是抛出
NoActivityResumedException
异常。然后检查您的活动是否正在前台运行

关于第二次试验:

intended(hasComponent(MainActivity::class.qualifiedName))

为我工作(Kotlin中的代码)。因此,基本上使用
hasComponent(String className)
而不是
hasComponent(ComponentName ComponentName)

那么问题是什么呢?你还没有提供第二个的代码test@Shurov问题是这两个测试应该是什么样子,特别是当第二个测试用例抛出异常时。第二个测试的代码已经用第二个方法给出了-名为
test\u anotherActivity\u pressBack
-注释为测试用例。对不起,我的错。我在下面添加了一个答案当第一个测试工作时,第二个测试在使用
designed(hasComponent(MainActivity.class.getName())时仍然显示相同的错误
后按Back()
intended(hasComponent(MainActivity::class.qualifiedName))