【问题标题】:Android. How can I slide NavigationDrawer from Espresso test library?安卓。如何从 Espresso 测试库中滑动 NavigationDrawer?
【发布时间】:2014-01-08 01:02:35
【问题描述】:

我在 Android 中从 Espresso 创建单元测试。我的项目有 NavigationDrawer。我创建了必须滑动 NavigationDrawer 并单击按钮的测试。了解如何在我的测试中创建幻灯片动作。

我目前的解决方案:

try
    {
        runTestOnUiThread(new Runnable()
        {

            @Override
            public void run()
            {
                DrawerLayout drawer = (DrawerLayout)getActivity().findViewById(R.id.drawer_layout);
                drawer.openDrawer(Gravity.LEFT);
            }
        });
    }
    catch (Throwable e)
    {
        e.printStackTrace();
    }

但我认为这是糟糕的代码。

【问题讨论】:

    标签: android unit-testing navigation-drawer android-espresso


    【解决方案1】:

    在 android-test-kit 组中有一个描述如何做到这一点,由 ValeraZakharov - link 解释。

    【讨论】:

    • 谢谢,但是代码是AssignableFrom(DrawerLayout.class);不存在。方法 isAssignableFrom 错误。
    • 对我来说一切都很完美。只需导入这个:import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isAssignableFrom;
    • 这里需要注意的是,正如 ScootrNova 所提到的,抽屉功能已被 ValeraZakharov 添加到 espresso-contrib 中。
    【解决方案2】:

    Espresso 1.1 现在已经发布了一段时间,但我仍然完全无法在其中找到任何 Navigation Drawer 功能......也就是说,直到我发现这个功能实际上包含在一个完全独立的库文件:espresso-contrib,可通过 gradle 使用

    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2'

    这是在the "Why Espresso" page of the Espresso website上超级简单提到的:

    如果您需要 contrib 库中的任何功能,例如 DrawerActions,请从 here 复制 espresso-contrib jar。

    Here's the DrawerActions documentationhere 是一些使用它的示例代码。希望这能让您朝着正确的方向前进; EspressoSamples 页面没有此示例代码...

    【讨论】:

    【解决方案3】:

    openDrawer() 已弃用,您可以改用此代码。 我可以确认它有效

    onView(withId(R.id.my_drawer_layout)).perform(DrawerActions.open());
    

    【讨论】:

    • 嗨,在我的代码中无法解析方法 open() 错误正在显示。你能告诉我吗?
    【解决方案4】:

    下一版 Espresso 即将支持 NavigationDrawer。目前,您可以实现自己的 ViewAction,您可以在其中将代码添加到 Runnable 中。这是一个不完整的解决方案,因为您可能会遇到与抽屉打开/关闭相关的时间问题。 Espresso 1.1 会解决这个问题。

    【讨论】:

    • Espresso 是一个年轻的图书馆。例子太少了。我将搬到 UIAutomator。您在 Google 群组中的回答对我有帮助。
    • 你见过code.google.com/p/android-test-kit/wiki/EspressoSamples吗?如果您认为缺少某些内容,欢迎您提出请求,甚至添加更多示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 2011-12-29
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多