使用Espresso获得意图的额外价值

时间:2017-09-01 18:47:27

标签: android android-intent android-espresso

我有一个应用,其中一个活动(让我们称之为ActivityA)或另一个活动(ActivityB)可以导致相同的目标活动(ActivityC)。

在我的代码中,ActivityC有一个按钮,可以返回上一个活动:ActivityAActivityB,具体取决于哪个调用了ActivityC

我想用Espresso编写一些单元测试来验证此流程,但不知道如何确定哪个活动调用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()));
}

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

1 个答案:

答案 0 :(得分:0)

我最终发现Espresso没有办法可以做我想做的事情,因为确认ActivityC是否导致其先前活动的责任在于ActivityAActivityB的测试。

基本上,解决此问题的方法是让ActivityA(或B)调用ActivityC,然后让ActivityC以自己的方式调用之前的活动,无论哪个一个是。