Tôi có hai ứng dụng tương tác với nhau thông qua các mục đích. Tôi muốn xác minh rằng giả sử Ứng dụng A gọi chính xác số startActivity
cho Ứng dụng B mà không thực sự khởi chạy Ứng dụng B. Tôi đã thử các kết hợp khác nhau của intending
và Espresso vẫn khởi chạy Ứng dụng B thông qua mục đích thay vì chỉ cắt nó ra. Điều này khiến các kiểm tra còn lại thất bại vì giao diện người dùng bị chặn bởi App B. Bất kỳ ý tưởng?Lỗi khi nhấn mạnh Intent với Espresso
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyActivityUiIntentsTest
{
@Rule
public IntentsTestRule<MyActivity> activityRule =
new IntentsTestRule<>(MyActivity.class, true, false);
@Test
public void shouldStartOtherActivityWhenButtonClicked()
{
Intents.init();
intending(toPackage("my.package"))
.respondWith(new ActivityResult(Activity.RESULT_OK, null));
activityRule.launchActivity(new Intent());
onView(withId(R.id.viewId)).perform(click());
intended(hasComponent(hasShortClassName("the.other.class.name")));
Intents.release();
}
}
CẬP NHẬT: Mã cho onClick
:
@OnClick(R.id.viewId)
public void startOtherActivity()
{
Intent intent = new Intent();
intent.setClassName("my.package", "the.other.class.name");
startActivity(intent);
finish();
}
Chúng ta có thể thấy đoạn mã để tạo Ý định trong onClick? Và bạn đã đăng nhập tên gói trên các mục đích? I. ý định của bạn không bắt đúng ý định – Blundell
Đã thêm mã mẫu 'onClick'. – brwngrldev
Bạn đang chạy phiên bản API thiết bị/emu nào? –