0


Android UI 测试工具- Espresso的配置及使用

  • 介绍

本篇文章参考:Espresso谷歌官方介绍

Espresso是一个非常强大的Android UI测试框架,使用Espresso可模拟用户操作、检测数据编写简洁、漂亮、可靠的Android UI测试。

  • 配置

添加Espresso依赖项

打开应用的build.gradle文件,注意不是顶级的build.gradle文件,是app/build.grdle。在依赖项中添加以下代码:需均使用

androidx.test
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' 
androidTestImplementation 'androidx.test:runner:1.5.2' 
androidTestImplementation 'androidx.test:rules:1.5.0'

设置插桩测试运行程序

将下行代码添加到同一build.gradle文件的android.defaultConfig中

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

添加第一个测试

一般会在程序的项目的src/androidTest/java/com.example.package/中创建测试,示例如下:

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class HelloEspressoTest { 
    @Rule 
    public ActivityScenarioRule<MainActivity> activityRule = 
        new ActivityScenarioRule<>(MainActivity.class); 
    @Test
    public void testTextMatch() { 
        //Text为Hello的控件是否目前显示在界面上                         
        onView(withText("Hello")).check(matches(isDisplayed())); 
    } 
}

语法

Espresso API建议测试作者考虑用户在与应用互动时可能会执行的操作-找到界面元素并与之互动。同时,该框架会阻止直接访问应用的activity和视图,因为保留这些对象并在界面现成之外对其执行操作是导致测试不稳定的主要原因。因此,在Espresso API中看到getView()和getCurrentActivity()等方法,只需实现ViewAction和ViewAssertion就可以安全地对视图执行操作。

Espresso 的主要组件包括:

  • Espresso 用于与视图交互(通过 onView()onData())的入口点。此外,还会公开不一定与任何视图相关联的 API,例如 pressBack()
  • ViewMatchers 实现 Matcher<? super View> 接口的对象的集合。可以将其中一个或多个对象传递给 onView() 方法,以在当前视图层次结构中找到某个视图。
  • ViewActions 可传递给 ViewInteraction.perform() 方法的 ViewAction 对象的集合,例如 click()
  • ViewAssertions 可传递给 ViewInteraction.check() 方法的 ViewAssertion 对象的集合。大多数情况下,可以使用匹配断言,该断言使用视图匹配器来断言当前所选视图的状态。
// withId(R.id.my_view) is a ViewMatcher 
// click() is a ViewAction 
// matches(isDisplayed()) is a ViewAssertion 
onView(withId(R.id.my_view)) 
    .perform(click()) 
    .check(matches(isDisplayed()));
查找视图
onView()

方法匹配当前视图层次结构中地一个(且只有一个)视图,一般需要视图具有唯一的

R.id

withId

匹配器会缩小视图搜索范围

onView(withId(R.id.my_view)); 
//如果多个视图之间共享R.id,使用该R.id会抛出AmbiguousViewMatcherException。 
//可以通过使用组合匹配器来缩小搜索范围 
onView(allof(withId(R.id.my_view), withText("Hello!")));
//也可以如下所示 
onView(allof(withId(R.id.my_view), not(withText("Unwanted"))));
视图操作

找到适合目标视图地匹配器后,可以使用

perform

方法对该视图执行

ViewAction

实例

点击视图
onView(...).perform(click()); 
//通过一次perform调用来执行多项操作 
onView(...).perform(typeText("Hello"), click());

检查视图断言

可以使用

check()

方法将断言应用于当前选定的视图,最常用的断言是

matches()

断言,它使用

ViewMatcher

对象断言当前所选视图的状态。

注:不能将断言放在

onView()

参数中,而应该在

check

代码块中明确指定要检查的内容。

onView(...).check(matches(withText("Hello!")))

标签: android ui 测试工具

本文转载自: https://blog.csdn.net/weixin_48739249/article/details/136403027
版权归原作者 于瑞雪 所有, 如有侵权,请联系我们删除。

“Android UI 测试工具- Espresso的配置及使用”的评论:

还没有评论