如何对通过JUnit5和Mockk扩展LinearLayout的视图进行单元测试?

问题描述

我有一个扩展LinearLayout的视图:

internal class MyWidgetView
constructor(
    context: Context,attrs: AttributeSet
) : LinearLayout(context,attrs) {
...

}

它使用类似于外部依赖项的表面视图,我想对使用MyWidgetView API时如何更改它们进行单元测试。

问题当然是我无法实例化它,因为它无法找到android依赖项。

我尝试用LinearLayout模拟mockkConstructor(LinearLayout::class)构造函数,但没有帮助。

@ExtendWith(MockKExtension::class)
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
internal class MyWidgetViewTest {

    @RelaxedMockK
    private lateinit var contextMock: Context

    @RelaxedMockK
    private lateinit var attributeSetMock: AttributeSet

    @BeforeEach
    fun beforeEach(){
        clearallMocks()
        mockkConstructor(LinearLayout::class)

        sut = MyWidgetView(contextMock,attributeSetMock) // This breaks
    }

    @Test
    fun correctlyMocked() {
        assertthat(sut).isNotNull() // I never enter here
    }
}

这可能吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)