我想验证通过lamdba传递的值。 该功能看起来像这样:
fun save(entity: Any, idSupplier: () -> UUID): JsonEntity {
return save(JsonEntity(idSupplier(), entity, entity::class.simpleName!!))
}
现在,在我的测试中,我想验证为idSupplier传递的值。我做了一个模拟以返回save(...)的值,这样在我自己的save(...,()-> ...)中调用
every { jsonStorage.save(any<JsonEntity>()) } answers { value }
现在验证我现在有这个
verify(exactly = 1) { jsonStorage.save(event, any()) }
正在工作,但是我想知道已传递的确切值,即,如果实体的id为123,我想验证一下。
提前谢谢
答案 0 :(得分:0)
您需要一个capturing the parameters插槽。
示例
val id = slot<UUID>()
every { save(any<JsonEntity>()) { capture(id)} } answers { value }
// `id.captured` contains the value passed
// as a parameter in the lambda expression `idSupplier`
assertEquals(UUID.fromString("4195f789-2730-4f99-8b10-e5b9562210c1"), id.captured)