我想验证通过lamdba传递的值。函数看起来像这样:
fun save(entity: Any, idSupplier: () -> UUID): JsonEntity {
return save(JsonEntity(idSupplier(), entity, entity::class.simpleName!!))
}
Run Code Online (Sandbox Code Playgroud)
现在在测试中,我想验证为idSupplier传递的值。我做了一个模拟来返回save(...)的值,这样在我自己的save(...,()-> ...)中调用
every { jsonStorage.save(any<JsonEntity>()) } answers { value }
Run Code Online (Sandbox Code Playgroud)
现在验证我现在有这个
verify(exactly = 1) { jsonStorage.save(event, any()) }
Run Code Online (Sandbox Code Playgroud)
哪个正在工作,但是我想知道已传递的确切值,即如果实体的id为123,我想验证一下。
先感谢您
您需要一个 Slot 来捕获参数。
例子
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |