我在这里找到了以下测试(略作修改)作为答案。但是我收到一条错误消息,提示我需要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();
}
提前致谢
罗兰
最佳答案
您可以删除以下行:
getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
不必要,因为您使用的是
invokeMenuActionSync()
。