作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 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/
我是一名优秀的程序员,十分优秀!