[英]How do I mock a Kotlin function type returning a value class with Mockk?
我有一個在其構造函數中采用 function 類型的測試對象:
class PricedStockListLoader(
val stock: Stock,
val pricing: (Item) -> Price?
)
在我的測試中,我可以模擬兩個依賴項:
val stock: Stock = mockk()
val pricing: (Item) -> Price? = mockk()
val loader = PricedStockListLoader(stock, pricing)
並指定對stock
的期望
every { stock.stockList(sameDayAsLastModified) } returns Success(stockList)
但如果我嘗試指定對pricing
的期望
every { pricing.invoke(anItem) } returns Price(666)
該行(指定期望的行)永遠不會返回,卡在 Object 上。等待 JUnit 內的某個地方。
我可以模擬 function 類型返回值類嗎?
與 mocking 內聯類相關的問題。
最小的,可重現的例子:
@JvmInline
value class Foo(val bar: String)
val f: () -> Foo = mockk()
@Test
fun `test value`() {
every { f.invoke() } returns Foo("test")
f.invoke()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.