是否可以将自定义消息添加到 AssertJ assertThat?
我们有一个测试套件,主要将 JUnit 断言与 Hamcrest 匹配器结合使用。我们的团队之一开始尝试使用AssertJ,并以其语法,灵活性和声明性给人留下了深刻的印象。JUnit提供了一个功能,我在 AssertJ 中找不到等效的功能:添加自定义断言失败消息。
我们经常比较那些不是为人类可读性而制作的对象,这些对象将具有随机的ID或UUID,并且不可能通过它们包含的数据来判断它们应该是什么。对于我们的代码库来说,这是一个不可避免的情况,可悲的是,它实现的目的的一部分是在其他服务之间映射数据,而不必了解它是什么。
在 JUnit 中,assertThat
方法提供一个版本,该版本在参数之前有一个参数。这使得添加一个简短的调试字符串来阐明问题变得微不足道,就像比较对人类意味着什么一样。String reason
Matcher<T>
另一方面,AssertJ提供了一个jillion不同的泛型化静态assert方法,
这些方法返回某种形式的接口Assert或其众多实现类之一。此接口不提供将自定义消息设置为包含在失败中的标准方法。
有没有办法从 AssertJ API 或其扩展之一获取此功能,而不必为我们要向其添加消息的每个断言类型创建自定义断言类?