Espresso 测试以验证 SwipeRefreshLayout 是否显示刷新指示器

mak*_*tar 4 android kotlin android-espresso swiperefreshlayout

我想创建一个 Espresso 测试来验证它SwipeRefreshLayout是否显示了刷新指标。我怎样才能做到这一点?

mak*_*tar 8

没有标准的 Espresso 匹配器,但您可以创建一个自定义的匹配器:

object SwipeRefreshLayoutMatchers {
    @JvmStatic
    fun isRefreshing(): Matcher<View> {
        return object : BoundedMatcher<View, SwipeRefreshLayout>(
            SwipeRefreshLayout::class.java) {

            override fun describeTo(description: Description) {
                description.appendText("is refreshing")
            }

            override fun matchesSafely(view: SwipeRefreshLayout): Boolean {
                return view.isRefreshing
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

onView(withId(R.id.swipe_refresh_layout)).check(matches(isRefreshing()))
Run Code Online (Sandbox Code Playgroud)