gpt4 book ai didi

kotlin - 如何使用 Mockk 模拟返回值类的 Kotlin 函数类型?

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

我有一个在其构造函数中采用函数类型的测试对象:

class PricedStockListLoader(
val stock: Stock,
val pricing: (Item) -> Price?
)

在我的测试中,我可以模拟两个依赖项:

val stock: Stock = mockk()
val pricing: (Item) -> Price? = mockk()
val loader = PricedStockListLoader(stock, pricing)

并指定对股票

的期望
every { stock.stockList(sameDayAsLastModified) } returns Success(stockList)

但如果我尝试指定对定价

的期望
every { pricing.invoke(anItem) } returns Price(666)

那一行(指定期望的那一行)永远不会返回,卡在 JUnit 内部某处的 Object.wait 上。

我可以模拟返回值类的函数类型吗?

最佳答案

与模拟内联类相关的问题。

最小的、可重现的例子:

@JvmInline
value class Foo(val bar: String)

val f: () -> Foo = mockk()

@Test
fun `test value`() {
every { f.invoke() } returns Foo("test")
f.invoke()
}

关于kotlin - 如何使用 Mockk 模拟返回值类的 Kotlin 函数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74400503/

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