2011-03-06 91 views
1

我在這裏找到了以下測試(稍作修改)作爲答案。但我得到一個錯誤,說我需要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(); 
    } 

在此先感謝 羅蘭

回答

5

您可以刪除此行:

getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_MENU); 

這是沒有必要的,因爲你正在使用invokeMenuActionSync()代替。