模拟单元和UI测试的最终类

时间:2019-06-06 22:00:02

标签: java android kotlin mockito ui-testing

我正在尝试为我的Android应用(使用kotlin构建)编写单元测试和espresso UI测试。由于在kotlin中,每个类默认情况下都是final,因此为了模拟final类,我使用了支持嘲笑final类的mockInline库。 由于我必须同时编写单元测试和UI测试。我以以下方式添加了库

testImplementation 'org.mockito:mockito-inline:2.13.0'
androidTestImplementation 'org.mockito:mockito-inline:2.13.0'

但是在运行UI测试时会抛出

More than one file was found with OS independent path 'mockito-extensions/org.mockito.plugins.MockMaker'

有没有一种方法可以使用mockInline库模拟单元测试和UI测试的最终类

1 个答案:

答案 0 :(得分:0)

如官方问题跟踪工具here所述,我们无法使用嘲笑内联插件模拟UI测试(Android测试)的最终类

其原因是

  

“没有实际可能在Android上通过   时刻,因为它缺乏仪器API,而我们   操作。 Android VM不是标准VM,仅实现   Java规范的子集。只要Google不选择   扩展其JVM,恐怕此功能将无法使用。”

here

模拟android测试的最终课程

  • 我们可以使用DexOpener库来模拟Android中的最终类。

  • 我们还可以使用Kotlin Open Plugin来打开所有最终类而无需显式的open关键字。