Android Espresso - 测试不同的活动

Android Espresso - Testing on different Activities

我正在使用 Espresso 框架为我的 Android 应用编写测试。到目前为止,这似乎工作正常。问题是我有时不得不更改 Activity。

在这种特定情况下,单击按钮会打开 Google PlacePicker,用于 select 某个位置。但与此 Activity 显示同时,Espresso 正在等待下一步。因此,它不会在此 Activity 中进行交互,而是会停止,直到我手动关闭地点选择器(或达到超时)。

所以看起来像这样:

onView(withId(R.id.origin)).perform(click()); // opens PlacePicker    
onView(...)  // is only executed the moment I manually close the PlacePicker    

那么有没有一个选项可以告诉 Espresso Activity 已经更改为 select 一个地方,return 为我的 activity?无法在PlacePicker中进行任何交互,无法从调试器中找到视图元素。

Espresso 仅适用于一个 activity。它旨在测试活动。

您可以通过使用一些假的(手动创建的)Intent 手动调用您的 onActivityResult 来模拟 PlacePicker 调用。

所以打电话给

onActivityResult(PLACE_PICKER_REQUEST, RESULT_OK, intent)

而不是

onView(withId(R.id.origin)).perform(click()); // opens PlacePicker