Tôi đang cố gắng viết một bài kiểm tra để xác minh ý định khởi chạy với espresso, vấn đề là dự định() không ghi lại bất kỳ ý định nào.Espresso không ghi lại bất kỳ ý định nào nếu không có nút
Tôi có xét nghiệm này
@Test
public void shoulddosomething(){
startActivity();
intended(hasComponent(hasClassName(TemplatePictureCaptureActivity.class.getName())));
}
và trong hoạt động của tôi có mã này
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(onRequestLayout());
Intent intent = new Intent(this, TemplatePictureCaptureActivity.class);
startActivity(intent);
}
Kết quả thử nghiệm là thế này.
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 0 intents.
IntentMatcher: has component: has component with: class name: is "cat.helm.recertel.ui.templatepicturecapture.TemplatePictureCaptureActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String
Matched intents:[]
Recorded intents:[]
Tôi đã cố gắng khởi chạy ý định bên trong onClickListen và nó hoạt động, nhưng không có nó tôi không thể làm cho nó hoạt động. Tôi cũng đã thử với các nguồn tài nguyên không tải không có may mắn. Bạn có biết làm thế nào để đạt được điều này?
Hãy thử chờ một chút trước khi dự định (hasComponent (hasClassName (TemplatePictureCaptureActivity.class.getName()))); – ozo
Cảm ơn. Nhưng nó không phải là một mùi mã xấu? – Borja
Tôi không nghĩ vậy. Tôi đoán xem là chưa sẵn sàng trong khi thử nghiệm ý định, android vẫn thiết lập chế độ xem (setContentView (onRequestLayout())), đó là lý do tại sao nó không thể tìm thấy ý định. Trong trường hợp nhấp vào nút, bạn đang nhấp sau khi chế độ xem được đặt. – ozo