我在应用中测试互动时,用户可以向上滑动以转到Google Play商店。但是当发生这种情况时,由于RuntimeException,Espresso无法执行其余的测试流:无法在主线程上找到RESUMED活动。
在用户界面上有左箭头(< - ),因此用户可以点按它以返回上一个应用。我如何告诉Espresso做类似的事情?或者强制正在测试的应用程序再次出现在前台?
以下是RuntimeException以供参考:
template<class Fn, class R, class... Args>
R test(Args&&... args) {
return Fn{}(std::forward<Args>(args)...);
}
int foo( int a, int b ) { return a+b; }
int r = test< constant_t<TYPEDARG(foo)>, int, int, int >( 3, 4 );
答案 0 :(得分:1)
Espresso不能用于跨应用测试。 Espresso与您的申请流程密切相关。
但是有一些方法可以测试这种互动:
抓住意图以Espresso-Intents进入游戏商店并返回存根响应。这样,您的测试将被封装,永远不会离开您的应用程序。这是一种推荐的方法,因为它可以独立地测试这个场景,而不会与您无法控制的外部依赖项交互。
使用可以在您的应用程序上下文之外执行的UiAutomator并单击其中的内容。如果您对端到端测试感兴趣,可能会有用,但需要更加脆弱的权衡。您可以在此问题中找到示例用法:How to regain Access on a Activity after sending it to background