gpt4 book ai didi

java - 如何将 `any` 匹配器与对象参数一起使用

转载 作者:行者123 更新时间:2023-12-02 02:56:30 25 4
gpt4 key购买 nike

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

我不想执行以下操作来解决问题

  • 模拟构造函数,因为我想使用实际调用该方法的真实对象
  • assertThat(object.method(any(SomeClass.class))) 因为它放松了测试,并且参数 someParam 很重要。

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

  • assertThat(object.method(any(SomeClass.class, someParam))) 它将匹配使用传递参数的特定构造函数调用它的两个对象。

最佳答案

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

这是错误的做法。

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

关于java - 如何将 `any` 匹配器与对象参数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42976793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com