通过 Espresso 获得意向的额外价值

Getting intent extra value with Espresso

我有一个应用程序,其中一个 activity(我们称之为 ActivityA)或另一个(ActivityB)可以导向相同的目标 activity(ActivityC).

在我的代码中,ActivityC 有一个返回到上一个 activity 的按钮:ActivityAActivityB,具体取决于哪个调用了 ActivityC.

我想用 Espresso 编写一些单元测试来验证此流程,但不知道如何确定哪个 activity 调用了 ActivityC。下面的代码说明了我的问题:

String extra = getIntent().getStringExtra("key"); // How can I store the extra value?
if (ActivityA.class.getName().equals(extra)) {
    intended(hasComponent(ActivityA.class.getName()));
} else if (ActivityB.class.getName().equals(extra)) {
    intended(hasComponent(ActivityB.class.getName()));
}

完成此操作后,我的测试将能够验证意图是否指向正确的目标 activity。

我最终发现 Espresso 没有可以做我想做的事情的方法,因为验证 ActivityC 是否导致其之前的 activity 的责任位于 ActivityAActivityB.

的单元测试中

基本上,解决这个问题的方法是让 ActivityA(或 B)调用 ActivityC,然后让 ActivityC 调用它之前的 activity我行我素,不管是哪一种。