首页 > 解决方案 > Android测试一个函数正在被滚动调用

问题描述

我有这个 ScrollChangedListener

var scrolledOnce = false
 scrollView.setOnScrollChangeListener(object : View.OnScrollChangeListener{
            override fun onScrollChange(
                v: View?,
                scrollX: Int,
                scrollY: Int,
                oldScrollX: Int,
                oldScrollY: Int
            ) {

              if(!scrolledOnce) {
                  scrolledOnce = true
                  handler.postDelayed(Runnable {
                      scrolledOnce = false
                      isCalled()
                  }, 1000)
              }

            }

        })

这是对此的测试

@get:Rule
    var activityScenarioRule = activityScenarioRule<MainActivity>()

    @Test
    fun checkScrollEvent(){

        Espresso.onView(ViewMatchers.withId(R.id.scrollVw)).perform(ViewActions.swipeDown())

    }

我想验证 isCalled() 是否被调用。我该怎么做?

标签: androidandroid-espressoandroid-testing

解决方案


我想你可能想在滚动视图上向上滑动而不是向下滑动。

onView(withId(R.id.scrollVw).performViewActions.swipeUp())

onView(withText("The next item").check(matches(isDispalyed())

推荐阅读