我正在尝试使用Kotlin中的ockk库在单元测试中执行链调用。下面是我的代码:
@MockK
lateinit var crypto: Crypto
@Before
fun setUp() {
MockKAnnotations.init(this, relaxUnitFun = true)
}
@Test
fun testCryptoFunc() {
// Given
// When
every { crypto.sayHello() } returns "gg" // This works
every { crypto.sayHelloTwice("w").sayHello() } returns "gg" //sayHello() is unresolved
// Then
//val c = crypto.sayHelloTwice("ss")
//print("rr")
}
我的实现代码:
fun sayHello(): String {
return "hello"
}
fun sayHelloTwice(a: String): String {
return sayHello() + a
}
我正在尝试对内部调用(sayHello())进行存根处理,但出现未解决的引用错误。根据Mockk关于连锁电话的文档,它说这应该是有效的。
我尝试清理和重建(但是遇到编译错误)。尝试重新启动IDE。尝试使缓存无效并重新启动。
我有什么想念的地方吗?
参考文献: