Tôi làm cách nào để tạo trường hợp thử nghiệm Android JUnit để kiểm tra nội dung của Mục đích được tạo trong một Hoạt động?Tôi làm cách nào để thử nghiệm một Intent được khởi chạy/gửi từ một Hoạt động?
Tôi có Hoạt động chứa cửa sổ EditText và khi người dùng đã nhập xong dữ liệu bắt buộc, Hoạt động sẽ khởi chạy Intent đến IntentService ghi dữ liệu và tiếp tục với quy trình đăng ký. Đây là lớp Tôi muốn thử nghiệm, các OnEditorActionListener/PasscodeEditorListener được tạo ra như là một lớp riêng biệt:
public class PasscodeActivity extends BaseActivity {
EditText m_textEntry = null;
PasscodeEditorListener m_passcodeEditorListener = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.passcode_activity);
m_passcodeEditorListener = new PasscodeEditorListener();
m_textEntry = (EditText) findViewById(R.id.passcode_activity_edit_text);
m_textEntry.setTag(this);
m_textEntry.setOnEditorActionListener(m_passcodeEditorListener);
}
@Override
protected void onPause() {
super.onPause();
/*
* If we're covered for any reason during the passcode entry,
* exit the activity AND the application...
*/
Intent finishApp = new Intent(this, CoreService.class);
finishApp.setAction(AppConstants.INTENT_ACTION_ACTIVITY_REQUESTS_SERVICE_STOP);
startService(finishApp);
finish();
}
}
class PasscodeEditorListener implements OnEditorActionListener{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
PasscodeActivity activity = (PasscodeActivity) v.getTag();
boolean imeSaysGo = ((actionId & EditorInfo.IME_ACTION_DONE)!=0)?true:false;
boolean keycodeSaysGo = ((null != event) &&
(KeyEvent.ACTION_DOWN == event.getAction()) &&
(event.getKeyCode() == KeyEvent.KEYCODE_ENTER))?true:false;
if (imeSaysGo || keycodeSaysGo){
CharSequence seq = v.getText();
Intent guidEntry = new Intent(activity, CoreService.class);
guidEntry.setAction(AppConstants.INTENT_ACTION_PASSCODE_INPUT);
guidEntry.putExtra(AppConstants.EXTRA_KEY_GUID, seq.toString());
activity.startService(guidEntry);
return true;
}
return false;
}
}
Làm thế nào tôi có thể đánh chặn hai Intents ngoài có thể được tạo ra bởi hoạt động và xác định nội dung của họ?
Cảm ơn
Bạn đang sử dụng simulater? Có lẽ tôi đang thiếu một cái gì đó, nhưng bạn không thể chỉ kiểm tra nó theo cách đó? – Nick
Tôi đã sử dụng cả trình mô phỏng và thiết bị cầm tay, mặc dù tôi không nghĩ có sự khác biệt. Tôi đã nhìn thấy một số cách để đưa Intents vào bất kỳ Activity cụ thể nào được kiểm tra, nhưng không phải là nhiều cách để xem đầu ra. Thấy một bài đăng khác là họ đã đặt ContextWrapper và chặn cuộc gọi đến "startService()". Điều này làm việc cho cuộc gọi đầu tiên, nhưng không phải là cuộc gọi tiếp theo. Một hoạt động có thể khởi chạy nhiều ý định mà không đóng, tôi quan tâm đến việc xem/thử nghiệm tất cả. –