通过 Espresso 获得意向的额外价值
Getting intent extra value with Espresso
我有一个应用程序,其中一个 activity(我们称之为 ActivityA
)或另一个(ActivityB
)可以导向相同的目标 activity(ActivityC
).
在我的代码中,ActivityC
有一个返回到上一个 activity 的按钮:ActivityA
或 ActivityB
,具体取决于哪个调用了 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 的责任位于 ActivityA
和 ActivityB
.
的单元测试中
基本上,解决这个问题的方法是让 ActivityA
(或 B)调用 ActivityC
,然后让 ActivityC
调用它之前的 activity我行我素,不管是哪一种。
我有一个应用程序,其中一个 activity(我们称之为 ActivityA
)或另一个(ActivityB
)可以导向相同的目标 activity(ActivityC
).
在我的代码中,ActivityC
有一个返回到上一个 activity 的按钮:ActivityA
或 ActivityB
,具体取决于哪个调用了 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 的责任位于 ActivityA
和 ActivityB
.
基本上,解决这个问题的方法是让 ActivityA
(或 B)调用 ActivityC
,然后让 ActivityC
调用它之前的 activity我行我素,不管是哪一种。