gpt4 book ai didi

android - Activity.findViewById() 在 Espresso 测试中返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:34 25 4
gpt4 key购买 nike

在 Espresso 测试中,我想获取对我的 ViewPager 的引用,以便我可以将 IdlingResource 附加到它。但是 findViewById 返回 null,即使我之前确认 ViewPager 已显示。

// Passes
onView(withId(R.id.viewPager)).check(matches(isDisplayed()));
Activity activity = activityTestRule.getActivity();
assertNotNull(activity);
// Fails
assertNotNull(activity.findViewById(R.id.viewPager));

有什么想法吗?

最佳答案

您提供的信息不多。但是,让我们利用现有的资源吧。

我假设 Activity 已成功启动并且 DialogFragment(包含 ViewPager)也已显示:

您发布的代码的第一行 onView(withId(R.id.viewPager)).check(matches(isDisplayed())); 确实通过了,因为 Espresso 搜索了所有具有已添加到当前窗口。对话框位于窗口布局层次结构中的某个位置。

但是 assertNotNull(activity.findViewById(R.id.viewPager)); 确实失败了,因为 ViewPager 不在 Activity 的内容 View 中 但在 FragmentDialog 中。

您可以在 Hierarchy Viewer 的帮助下验证 View 层次结构.比较有和没有对话框的层次结构。

为什么要给 ViewPager 添加一个 IdlingResource

关于android - Activity.findViewById() 在 Espresso 测试中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471217/

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