Kotlin-mockk连锁电话

时间:2019-03-20 14:07:52

标签: unit-testing kotlin mocking mockk

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

我有什么想念的地方吗?

参考文献:

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

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

0 个答案:

没有答案