【问题标题】:espresso : Idling resource for many situations to waitespresso : 许多情况下的空闲资源等待
【发布时间】:2016-04-01 06:47:36
【问题描述】:

我有一个活动。它可能需要许多片段。首先,它需要一个具有列表视图的 MyFeed 片段。 listview 的模型取自网络。我可以单击列表中的一项。当我单击其中一个项目时,出现了 EndFragment。 Endfragment也需要来自网络的模型。

所以我需要两个空闲资源。

这是我的测试场景。

  1. 等待列表视图的模型被采用
  2. 单击列表视图中的第一项。
  3. Endfragment 出现并使用 EndFragment 做一些事情。

因为需要等待网络请求,所以我做了MyfeedListIdlingResource。

private class MyfeedListIdlingResource implements IdlingResource {

    private ResourceCallback mResourceCallback;

    @Override
    public String getName() {
        return MyfeedListIdlingResource.class.getName();
    }

    @Override
    public boolean isIdleNow() {
        boolean ready = mActivityRule.getActivity().myfeedListReady();
        return ready;
    }

    @Override
    public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
        mResourceCallback = resourceCallback;
    }
}

这是我的测试代码。(我已经在 MyfeedListIdlingResource 上面注册了)

    // step 1. Click first item in the listview. This brings Endfragment
    onData(withValue("POST"))
            .inAdapterView(withId(R.id.fm_listview))
            .atPosition(0)
            .perform(click());

    // step 2. Click a view in EndFragment
    onView(withId(R.id.btnComment)).perform(click());

在这个测试代码中,第1步顺利通过,因为我注册了MyfeedListIdlingResource。但它在第 2 步中失败并出现此错误代码。

Resource com.naver.android.pholar.StickerCommentTest$MyfeedListIdlingResource isIdleNow() 返回 true,但从未发送过指示资源已从忙转为空闲的消息。

我该如何处理这种情况? (如果我使用 Thread.sleep(),那么测试代码运行良好)

【问题讨论】:

    标签: android ui-testing android-espresso


    【解决方案1】:

    如果您使用 onData 语句,则不需要 IdlingResource。 Espresso 将加载您的列表并导航到必要的项目本身。这就是您收到此错误的原因。似乎你应该简单地删除你的空闲资源,没有它它会很好地工作。

    如果您想在测试中使用基于时间的延迟,最好不要使用 Thread.sleep() 而是使用 IdlingResource,因为它描述为 here

    【讨论】:

    • 感谢您的关注。我的列表已用页脚和页眉初始化。它的数据是从网络接收的。因此,如果我在从网络接收数据之前不使用 Thead.slpeep() 或 Idling Resource,则 espresso 无法找到 listview 项。
    猜你喜欢
    • 2015-03-24
    • 2019-01-14
    • 2021-12-07
    • 2014-10-17
    • 2021-04-06
    • 2015-08-24
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多