如何对NestedScrollView.OnScrollChangeListener回调Android进行单元测试

问题描述 投票:0回答:1

我在NestedScrollView.OnScrollChangeListener中有下面的代码块

 private val scrollChangedListener = object: NestedScrollView.OnScrollChangeListener {
        override fun onScrollChange(v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int) {
            someMethod()
        }
    }

view.getScrollView().setOnScrollChangeListener(scrollChangedListener)

我想测试并确认somemethod()在回调内部被调用。如何测试?

我尝试过此方法,但不起作用:

        val nestedScrollView: NestedScrollView = mock()
        val listner: NestedScrollView.OnScrollChangeListener = mock()

        whenever(nestedScrollView.setOnScrollChangeListener(listner)).thenAnswer {
            val listener = it.arguments[0] as NestedScrollView.OnScrollChangeListener
            listener.onScrollChange(null, any(), any(), any(), any())
        }

        verify(view).someMethod()
android unit-testing kotlin mockito android-nestedscrollview
1个回答
0
投票

您不能为android组件编写单元测试,仅因为单元测试在简单的jvm上运行并且对android框架一无所知(更多关于测试类型https://developer.android.com/studio/test

但是您可以使用Espresso(https://developer.android.com/training/testing/espresso)或Kaspresso(https://github.com/KasperskyLab/Kaspresso)在屏幕上编写UI测试

© www.soinside.com 2019 - 2024. All rights reserved.