gpt4 book ai didi

MockK - 验证失败,参数不匹配

转载 作者:行者123 更新时间:2023-12-03 17:04:59 31 4
gpt4 key购买 nike

我注意到有时 verify失败,“...调用...发生,但参数不匹配”

这是一个显示验证失败的示例测试:

class TestStuff {

val stuff = "1"

@RelaxedMockK
lateinit var testService: TestService

@RelaxedMockK
lateinit var testInterface: TestInterface

@Before
fun setup() {
MockKAnnotations.init(this)

every { testInterface.testStuff } returns stuff
}

@Test
fun testStuffCalled() {
testService.testStuff(testInterface.testStuff)

verify { testService.testStuff(testInterface.testStuff) }
}
}

interface TestInterface {
val testStuff: String
}

class TestService {

fun testStuff(stuff: String) {
}
}

如果我将带有验证调用的行更改为以下 2 行,则它可以工作:
let testStuffCopy = testInterface.testStuff
verify { testService.testStuff(testStuffCopy) }

最佳答案

我不确定这是否是一个错误,但一个快速的解决方法是使用 stuff作为验证,因为您希望返回的值是它:

verify { testService.testStuff(stuff) }

通过这种方式,您仍然可以测试该行为是否被调用,并且当您模拟 testInterface 的返回时返回 stuff ,这应该有效。

I created an Issue在 Mockk 中,我会在那里更新某些内容时更新此答案。

关于MockK - 验证失败,参数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48909220/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com