3

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

有没有更好或更正确的方法来做到这一点?

4

1 回答 1

1

您可以使用withArg在验证调用中的参数上运行断言和其他任意代码。使用assertEquals会给你更好的错误信息。

verify {
  obj.callSomething("param1", withArg {
    assertEquals("A", it.a)
    assertEquals("B, it.b)
  })
}
于 2020-07-06T05:33:20.633 回答