如何比较或验证不覆盖等于方法的对象



我在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)
  })
}

最新更新