У меня есть два приложения, которые взаимодействуют друг с другом через намерения. Я хотел бы подтвердить, что, допустим, Приложение A правильно называет startActivity
для Приложение B без фактического запуска Приложение B. Я пробовал различные комбинации intending
, и Espresso все еще запускает App B через намерение вместо того, чтобы просто его заглушить. Это приводит к сбою остальных тестов, поскольку пользовательский интерфейс блокируется Приложение B. Есть идеи?Ошибка при запуске с эспрессо
@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();
}
}
ОБНОВЛЕНО: Код для onClick
:
@OnClick(R.id.viewId)
public void startOtherActivity()
{
Intent intent = new Intent();
intent.setClassName("my.package", "the.other.class.name");
startActivity(intent);
finish();
}
Можем ли мы увидеть код Намерение создания в OnClick? И вы зарегистрировали имена пакетов по намерениям? Я намерен не поймать правильное намерение. – Blundell
Добавлен код кода 'onClick'. – brwngrldev
Какую версию API для устройства/эму вы используете? –