提醒:我目前使用的是Mockk-1.12.4和Kotlin-1.6
我有一个扩展方法,返回类型为T的对象:
fun <T> Entity.selectReferenceAsSingleObject(referenceName: String): T {
return this.selectReferencesByName(referenceName).single().asObjet() as T
}
这被定义为一个在Extentions.kt文件中的顶层函数(不是一个类)。我希望使用mockkStatic用MockK来模拟它。
mockkStatic(Entity::selectReferenceAsOptionalSingleObject)
然而,我遇到了错误:
Not enough information to infer type variable T
因为它无法确定我应该模拟哪种类型。我已经尝试在许多地方添加我的类型参数。
mockkStatic<KFunction<MyType>>(Entity::selectReferenceAsSingleObject)
mockkStatic<MyType>(Entity::selectReferenceAsSingleObject)
mockkStatic(Entity<KFunction<MyType>>::selectReferenceAsSingleObject)
mockkStatic(Entity<MyType>::selectReferenceAsSingleObject)
mockkStatic(Entity::<KFunction<MyType>>selectReferenceAsSingleObject)
mockkStatic(Entity::<MyType>selectReferenceAsSingleObject)
mockkStatic(Entity::selectReferenceAsSingleObject<KFunction<MyType>>)
mockkStatic(Entity::selectReferenceAsSingleObject<MyType>)
mockkStatic(Entity::selectReferenceAsSingleObject as KFunction<MyType>)
mockkStatic(Entity::selectReferenceAsSingleObject as MyType)
但是什么都不起作用,它要么告诉我同样的错误,要么告诉我那里不允许使用类型参数。我不确定我需要做什么来修复我的语法,因为IntelliJ没有给我任何提示,所以我感到有点被困住了。任何帮助将不胜感激。
val function: KFunction<MyType> = Entity::selectReferenceAsSingleObject
mockkStatic(function)
- Bradley Gray