1

我正在尝试使用 Kotlin 中的 mockk 库在我的单元测试中执行链式调用。下面是我的代码:

@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。尝试使缓存无效并重新启动。

我有什么遗漏/做错了吗?

参考:

https://mockk.io/#chained-calls

https://stackoverflow.com/a/54347784/1342086

4

0 回答 0