Mockk是否支持Kotlin 1.4.10

问题描述

我已将Android应用程序升级kotlin 1.4.10

现在尝试spyk()类时我的测试失败了

除此例外

io.mockk.MockKException: Can't instantiate proxy for class com.aaa.bbb.ccc.MyClass

带有一个奇怪的类强制转换异常,该异常基本上可以说明

cannot cast class com.aaa.bbb.ccc.MyClass to com.aaa.bbb.ccc.MyClass

MockK为什么要尝试将一个类强制转换为自身?

当我的gradle测试部门与此相似时,我的测试将失败:-

def coroutines_version = '1.3.7'
def junit_version = '4.13'
def mockk_version = '1.10.0'
def archtesting_version = '2.1.0'
def unitils_version = '3.4.6'

testImplementation "junit:junit:$junit_version"
testImplementation "io.mockk:mockk:$mockk_version"
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version"
testImplementation "androidx.arch.core:core-testing:$archtesting_version"
testImplementation "androidx.test:core:1.3.0"
testImplementation "org.unitils:unitils-core:$unitils_version"
testImplementation 'org.robolectric:robolectric:4.4'

testImplementation "org.koin:koin-test:$koin_version"
testImplementation "junit:junit:4.13"
testImplementation "androidx.test.ext:junit:1.1.2"

androidTestImplementation "androidx.test.ext:junit:1.1.2"
androidTestImplementation "androidx.test.espresso:espresso-core:3.3.0"

当我回到这些部门时,我的测试通过了:-

def coroutines_version = '1.3.7'
def junit_version = '4.13'
def mockk_version = '1.10.0'
def archtesting_version = '2.1.0'
def unitils_version = '3.4.6'

testImplementation "junit:junit:$junit_version"
testImplementation "io.mockk:mockk:$mockk_version"
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version"
testImplementation "androidx.arch.core:core-testing:$archtesting_version"
testImplementation "androidx.test:core:1.2.0"
testImplementation "org.unitils:unitils-core:$unitils_version"
testImplementation 'org.robolectric:robolectric:4.3'

testImplementation "org.koin:koin-test:$koin_version"
testImplementation "androidx.test.ext:junit:1.1.1"
androidTestImplementation "androidx.test.ext:junit:1.1.1"
androidTestImplementation "androidx.test.espresso:espresso-core:3.2.0"

解决方法

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

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

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