Android Espresso黑盒测试

时间:2017-09-10 06:10:32

标签: android android-espresso black-box-testing

我尝试使用Android Espresso在第三方apk文件上进行黑盒测试。我无法访问第三方apk文件的源代码。

因此,我可以使用UIAutomatorViewer获取UI元素ID。但是,在Espresso文件中,我无法访问" R"。

因此,当我致电onView(withId(R.id.<ui id>))时,它会返回错误:

  

包R不存在

示例:

onView(withId(R.id.fragment_onboarding_skip_button)).perform(click());

1 个答案:

答案 0 :(得分:2)

可以通过创建从ID名称中提取整数ID的方法来解决:

...    
public int getId(String id) {
    Context appContext = InstrumentationRegistry.getTargetContext();
    return appContext.getResources().getIdentifier(id, "id", "<applicationId>");
}

@Test
public void testSomething() {
    //here just pass the ID name
    onView(withId(getId("fragment_onboarding_skip_button"))).perform(click());
}
...