在它停止开发后,我使用FEST-Assert
并移至。AssertJ
最近,我被指向带有另一个断言库( http://google.github.io/truth/ )的Google存储库。Truth
阅读示例我找不到开始使用它的任何优势AssertJ
。因此,使用什么只是口味问题。但也许我错过了重点,是吗?
在它停止开发后,我使用FEST-Assert
并移至。AssertJ
最近,我被指向带有另一个断言库( http://google.github.io/truth/ )的Google存储库。Truth
阅读示例我找不到开始使用它的任何优势AssertJ
。因此,使用什么只是口味问题。但也许我错过了重点,是吗?
来自他们在 GitHub 上的评论之一:
核心区别在于,Truth 的设计包括两个特定的可扩展领域 - 命题失败的策略 - 这样整数的“主题”或字符串的主题可以在完全不同的结果的上下文中重用为失败。一个值得注意的例子是 JUnit 使用 AssertionError 和它的 AssumptionViolationException 之间的区别。Truth 允许您对两者使用相同的命题类。
另一个灵活性领域是能够创建新的断言/命题类型并将它们挂钩,而无需声明要导入的可能冲突的静态方法。这可以用于新类型(例如,添加 protobuf)或现有类型的新用途(例如,被视为 Uris 的字符串)。这是 assertAbout() 功能。
除此之外,Truth 与 AssertJ 非常相似,因为它受到 FEST 的启发,其中 AssertJ 是 2.0 开发线的一个分支。
总而言之,Truth 被设计为更具可扩展性和灵活性,但 AssertJ 对于标准类型的断言将非常棒(可能是最棒的)。