如何使用带有对象参数的`any`匹配器

How to use `any` matcher with parameters to the object

我在使用 assertThat(object.method(new SomeClass(someParam))) 时遇到问题,比较实际上是 运行 测试,匹配器正在比较对象引用而不是对象的内容作为 equals 方法未被覆盖。

我不想做下面的事情来解决问题

是否有解决方案可以执行以下操作?

你可以自己写匹配器,我一般都是扩展mockito的ArgumentMatcher...

Mock constructor since I want to use the real object where the method is actually called

这是错误的做法。

更好的方法是重构您的生产代码以使用依赖注入关注点分离和其他 OO 原则。然后很容易用 mock 替换 object 并使用 verify(object).method(eq(parameter));