我使用FEST-Assert
并在停止开发后移至AssertJ
。
最近我被指向 Google 存储库,其中包含另一个断言库Truth
(http://google.github.io/truth/)。
阅读这些例子我找不到在AssertJ
上开始使用它的任何好处。所以这只是味道的问题。但也许我错过了这一点,是吗?
答案 0 :(得分:9)
来自GitHub的comments之一:
核心差异在于真理的设计包括两个具体的 可扩展性领域 - 命题失败的策略 - 这样一个整数的“主题”,或者字符串的主题都可以 在完全不同的失败结果的背景下重复使用。一个 值得注意的例子是JUnit的使用区别 AssertionError和它的AssumptionViolationException。真相让你 对两者使用相同的命题类。
灵活性的另一个方面是创造新的能力 断言/命题类型并在不声明的情况下将它们挂钩 可能存在冲突的静态方法导入。这可以是新的 类型(例如,添加protobufs)或现有类型的新用途(例如, 被视为Uris的字符串)。这是assertAbout()功能。
除此之外,真相与AssertJ非常相似,因为它是 灵感来自FEST,其中AssertJ是2.0开发的一个分支 线。
总而言之,Truth旨在更具可扩展性和灵活性,但AssertJ对于标准类型的断言将是伟大的(可能是最好的)。