android - 如何比较或验证不覆盖 equals 方法的对象?
问题描述
我在 Kotlin (Android) 中使用 mockk 进行单元测试。
我想验证一个函数是否被调用:
verify { obj.callSomething("param1", Param2("A", "B")) }
在这种情况下Param2
,生成的 Java 类不会覆盖equals
方法,因此验证总是失败。
我尝试使用match
,但失败消息根本没有帮助。
verify { obj.callSomething("param1", match { it.a == "A" && it.b == "B" }) }
有没有更好或更正确的方法来做到这一点?
解决方案
您可以使用withArg
在验证调用中的参数上运行断言和其他任意代码。使用assertEquals
会给你更好的错误信息。
verify {
obj.callSomething("param1", withArg {
assertEquals("A", it.a)
assertEquals("B, it.b)
})
}
推荐阅读
- visual-studio-code - 为什么在 Visual Studio 代码中双击变量 $ 未被选中?
- excel - 如何从函数 vba excel 返回多个结果?
- debugging - IntelliJ IDEA 中的 Gradle Script 插件调试
- flutter - 在行中有孩子(在列中)换行
- c# - c#嵌入图像还是有其他方法
- google-apps-script - 有没有办法直接将私人谷歌电子表格(组织受限)分享给其他人?
- postgresql - 用于零值的 Postgres DECIMAL 自定义 ORDER BY 函数
- mongodb - 无法使用 mongodb golang 驱动程序进行身份验证
- asp.net-web-api - 三层架构.Net Core中的工作单元和存储库模式
- mysql - 为什么我在使用不同参数请求 MySQL 时得到相同的结果?