我想创建一个新的 assertEquals
,它将预期和实际的自定义 pojo 作为输入。
我将如何扩展JUnit 库
的assertEquals
?
我能做的是实现一个返回 boolean 值的比较方法,并将其作为 assertEquals
甚至 assertTrue
的输入,但创建我自己的 assertEquals
看起来更优雅。
如果相等或引发 AssertionError,是否只是返回 true 的情况?
最佳答案
正如@Makoto 评论的那样,您可以使用自定义的 Hamcrest 匹配器。
此处另一个常见答案(只需为您的类更改 Object#equals 的定义)的缺点是,您将只有一种比较对象的方法,并且它必须完全匹配所需的内容通过测试而不是类的用户需要什么。这两种需求可能相同也可能不同。通常在测试中,我只需要断言一个或两个值,有时是几个,但通常不是由我的类的“自然”#equals 方法测试的值。此外,我使用了很多甚至没有显式覆盖#equals 的类。在这些情况下,您必须定义一个仅适用于您的测试用例的工具,而它在语义上可能不能很好地代表域。
关于java - 扩展 JUnit assertEquals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27433916/