Tôi cần phải trang trải chức năng Menu theo các bài kiểm tra đơn vị, tuy nhiên tôi đang cố gắng để có được đối tượng Menu.Làm thế nào để kiểm tra Menu
Tiếp theo trường hợp thử nghiệm thất bại (mMenu là null):
sendKeys(KeyEvent.KEYCODE_MENU);
mMenu = (Menu) mActivity.findViewById(com.###.###.R.id.main_menu);
assertNotNull(mMenu);
lời khuyên hãy. Cảm ơn bạn.
Đây là một câu trả lời hữu ích và đoạn mã, quan trọng nhất là nó làm nổi bật rằng bạn phải gửi 'KeyEvent.KEYCODE_MENU' trước khi gọi hành động menu. Trong nhận thức rõ ràng, tôi đoán là bạn phải có menu hiển thị trước khi bạn có thể gọi một mục đó. –
FWIW Tôi sử dụng getInstrumentation(). InvokeMenuActionSync() mà không cần gọi trước sendKeyDownUpSync() và nó cũng hoạt động tốt. Xem câu trả lời cho câu hỏi này: http://stackoverflow.com/questions/5209154/test-menu-items – karni
Tôi quan sát thấy rằng lệnh gọi sendKeyDownUpSync là cần thiết, nếu bạn muốn kiểm tra nếu trong điều kiện là kết quả của công việc được thực hiện trong onPrepareOptionMenu, invokeMenuActionSync trả về true.Nếu không có cuộc gọi, onPrepareOptionsMenu đã không được gọi. – mtotschnig