如何比较或验证不覆盖equals方法的对象?

时间:2019-04-08 07:11:22

标签: android kotlin mockk

我在Kotlin(Android)中使用嘲笑来进行单元测试。

我想验证一个函数是否被调用:

    verify { obj.callSomething("param1", Param2("A", "B")) }

在这种情况下,Param2是一个生成的Java类,不会覆盖equals方法,因此验证总是失败。

我尝试使用match,但是失败消息根本没有帮助。

    verify { obj.callSomething("param1", match { it.a == "A" && it.b == "B" }) }

是否有更好或更正确的方法?

1 个答案:

答案 0 :(得分:0)

您可以使用withArg对您的verify调用中的参数运行断言和其他任意代码。使用assertEquals将为您提供更好的错误消息。

verify {
  obj.callSomething("param1", withArg {
    assertEquals("A", it.a)
    assertEquals("B, it.b)
  })
}