我想知道如何通过点击按钮来测试活动的启动。我知道这可能是这个:
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是否存在并且具有预期的文本)非常干净。
有什么解决方法吗?谢谢。
答案 0 :(得分:1)
您应避免在功能测试中使用外部服务。这包括使用GPS和内部执行此操作的API进行API调用,例如Facebook或Google+登录按钮。
我采用它的方式是通过创建两种口味并在每个口味中放置登录按钮布局:一个是真实的,用于生产和一个模拟,除了通知登录操作成功(或失败)之外什么都不做,所以调用代码可能会转到另一个Activity。这可能听起来很难正常,所以你可能想看看我的宠物应用程序的相关代码:
此应用中的两种风格将stub_login文件夹定义为build.gradle中的src / res文件夹:
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' }
}
}
tests(现在不是太多)与:
一起运行./gradlew connectedAndroidTestMockDebug
请注意,功能测试位于src/androidTestMock
,单元测试可能会保留在src/androidTest
。