测试菜单项

Rol*_*and 1 testing android menu keypress

我在这里找到了以下测试(稍加修改)作为答案.但我得到一个错误,说我需要android.permission.INJECT_EVENT.我已经将它添加到应用程序项目和测试项目中,但测试仍然说它需要它.

我是否误解了应该如何编写测试?

public void testMenuItemAddDrink(){
        Start activity = getActivity();
        ActivityMonitor am = getInstrumentation().addMonitor(Start.class.getName(), null, false);

        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
        getInstrumentation().invokeMenuActionSync(activity, se.javalia.myDrinks.R.id.menu_addDrink, 0);

        Activity addDrink = getInstrumentation().waitForMonitorWithTimeout(am, 1000);
        assertEquals(true, getInstrumentation().checkMonitorHit(am, 1));
        addDrink.finish();
    }
Run Code Online (Sandbox Code Playgroud)

在此先感谢罗兰

Die*_*ano 5

你可以删除这一行:

getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
Run Code Online (Sandbox Code Playgroud)

这不是必要的,因为你正在使用它invokeMenuActionSync().