我有一个应用,其中一个活动(让我们称之为ActivityA
)或另一个活动(ActivityB
)可以导致相同的目标活动(ActivityC
)。
在我的代码中,ActivityC
有一个按钮,可以返回上一个活动:ActivityA
或ActivityB
,具体取决于哪个调用了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()));
}
完成此操作后,我的测试将能够验证意图是否指向正确的目标活动。
答案 0 :(得分:0)
我最终发现Espresso没有办法可以做我想做的事情,因为确认ActivityC
是否导致其先前活动的责任在于ActivityA
和ActivityB
的测试。
基本上,解决此问题的方法是让ActivityA
(或B)调用ActivityC
,然后让ActivityC
以自己的方式调用之前的活动,无论哪个一个是。