繁体   English   中英

浓咖啡,测试第二项活动的启动

[英]Espresso, test launch of second activity

我想知道如何通过单击按钮来测试活动的启动。 我知道这可以用以下方法实现: onView(withText(R.string.button_next_activity)).perform(click()); ,然后onView(withId(R.id.second_tv_welcome)).check(matches(withText(R.string.second_tv_welcome))); 其中second_tv_welcome是第二个活动的textView。 但是我当前的活动是启动Facebook Web视图,我不知道此活动中的ID是什么,而且我发现这种检查方法(检查是否存在textview并具有期望的文本)不是很干净。 任何解决方法? 谢谢。

您应该避免在功能测试中使用外部服务。 这包括进行API调用,使用GPS以及内部执行的操作,例如Facebook或Google+登录按钮。

我采用的方法是创建两种样式,然后在每种样式中放置登录按钮布局:一种用于生产,另一种用于模拟,一种模拟,除了通知登录操作成功(或失败)外,不执行任何操作,因此调用代码可能会转到另一个活动。 刚开始听起来很难做到这一点,所以您可能想看看我的宠物应用程序的相关代码:

在此应用程序两种形式定义stub_login文件夹中的src / RES文件夹的build.gradle

sourceSets {
    mock {
        java { srcDir 'src/stub_login/java' }
        res { srcDir 'src/stub_login/res' }
    }
    apiary {
        java { srcDir 'src/stub_login/java' }
        res { srcDir 'src/stub_login/res' }
    }
}

测试 (目前还不多)运行:

./gradlew connectedAndroidTestMockDebug

请注意,功能测试位于src/androidTestMock而单元测试则可能位于src/androidTest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM