繁体   English   中英

如何检查一个活动是否收到另一个活动发送的意图?

[英]How to check if an Activity receives an intent sent from another activity?

单击按钮后,我将意图从活动 1 发送到活动 2。 我带着这个意图发送额外的内容。

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

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

假设从 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")
    ));
}

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

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

首先使用getIntent()

Intent intent = getIntent();

然后使用意图对象从另一个活动接收数据

String id = intent.getStringExtra("your key");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM