我想创建一个新的assertEquals
,将预期和实际的自定义pojo作为输入。
我怎么会去扩展assertEquals
的JUnit library
?
我能做的就是实现一个比较方法,它返回一个布尔值,并有以此为输入assertEquals
,甚至assertTrue
而是创造我自己assertEquals
看起来更优雅。
如果相等或引发AssertionError只是返回true的情况?
正如@Makoto所说,您可以使用自定义的Hamcrest Matcher。
另一个常见答案(这里只是更改类的Object#equals的定义)的缺点是,您将只有一种比较对象的方式,并且它必须与测试所需的内容完全匹配而不是班级用户需要的东西。这两个需求可能相同也可能不同。通常,在测试中,我只需要声明一个或两个值,有时是几个,但通常不需要通过类的“自然” #equals方法进行测试的值。此外,我使用许多甚至没有明确覆盖#equals的类。在这些情况下,您将必须定义一个仅适用于测试情况的方法,而在语义上可能无法很好地表示该域。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句