java - 扩展 JUnit assertEquals

标签 java junit

我想创建一个新的 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/

相关文章:

java - NER CRF,线程 "main"java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory 中出现异常

maven - JUnit + Maven +并行测试执行错误

java - 如何确定flink中的任务槽数

java - java调试中是否可以在外部完成线程?

Spring Actuator 和 @DataJpaTest 找不到 CounterService bean

java - 使用 AssertJ 或 JUnit 断言身份

java - JUnit5 Gradle 插件文件名或扩展名太长

java - 无法在 eclipse 中运行 junit 测试,ClassNotFoundException : org. eclipse.jdt.internal.junit.runner.RemoteTestRunner

java - j2me中无法播放mp3

javascript - 延迟加载:How to display multiple pdf documents as one with pdf.js?