如何检查活动是否收到其他活动发送的意图?

时间:2018-02-10 17:19:12

标签: android android-intent android-espresso

单击按钮后,我将一个intent从activity1发送到activity2。 我有这个意图发送额外内容。

使用espresso,我需要测试activity2是否从activity1发送了这个意图。

我不知道怎么做。我没有写任何代码。

2 个答案:

答案 0 :(得分:1)

让我们从ActivityA中说出你点击一个启动ActivityB的按钮:

Intent intent = new Intent(this, ActivityB.class);
                intent.putExtra("MY_EXTRA", "MY EXTRA VALUE");

检查您是否向ActivityB发送正确数据的测试将是:

@Rule
public IntentsTestRule<ActivityA> intentsTestRule = new IntentsTestRule<>(ActivityA.class);

@Test
public void testIntents() {
    //from ActivityA, click the button which starts the ActivityB
    onView(withText("ClickMe")).perform(click());

    //validate intent and check its data
    intended(allOf(
            toPackage("com.your.package.name"),
            hasExtra("MY_EXTRA", "MY EXTRA VALUE")
    ));
}

查看google提供的示例:https://github.com/googlesamples/android-testing/tree/master/ui/espresso/IntentsBasicSample

以及此处的一些文档:https://developer.android.com/training/testing/espresso/intents.html

答案 1 :(得分:-1)

首先使用getIntent()

Intent intent = getIntent();

然后使用intent对象从另一个活动

接收数据
String id = intent.getStringExtra("your key");