gpt4 book ai didi

android - Espresso - 使用异步加载的数据断言 TextView

转载 作者:可可西里 更新时间:2023-11-01 19:03:22 31 4
gpt4 key购买 nike

我正在使用适用于 Android 的 Google Espresso 编写一个 UI 测试,我一直在研究如何断言 TextView 文本,该文本的内容是从 Web 服务异步加载的。我当前的代码是:

public class MyTest extends BaseTestCase<MyActivity>{
public void setUp() throws Exception {
// (1) Tell the activity to load 'element-to-be-loaded' from webservice
this.setActivityIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("data://data/element-to-be-loaded")));
getActivity();

super.setUp();
}

public void testClickOnReviews(){
// (2) Check the element is loaded and its name is displayed
Espresso
.onView(ViewMatchers.withId(R.id.element_name))
.check(ViewAssertions.matches(ViewMatchers.withText("My Name")));

// (3) Click on the details box
Espresso
.onView(ViewMatchers.withId(R.id.details_box))
.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
.perform(ViewActions.click());

// (4) Wait for the details screen to open
Espresso
.onView(ViewMatchers.withId(R.id.review_box));

// Go back to element screen
Espresso.pressBack();
}
}

在 (1) 上,我通知我的 Activity 从网络服务加载一个元素。在 (2) 上,我正在等待断言其内容的 View 。这是测试失败的部分,因为它在网络服务响应应用程序之前执行。

如何让 Espresso 等待特定数据出现在屏幕上?或者我应该以不同的方式思考来编写这样的测试?

最佳答案

您可以通过使用 Espresso 为您的 Web 服务注册一个 IdlingResource 来处理这种情况。看看这篇文章:https://developer.android.com/training/testing/espresso/idling-resource.html

很可能,您会想要使用 CountingIdlingResource (它使用一个简单的计数器来跟踪什么时候空闲)。这sample test演示如何做到这一点。

关于android - Espresso - 使用异步加载的数据断言 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004481/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com