9

在它停止开发后,我使用FEST-Assert并移至。AssertJ

最近,我被指向带有另一个断言库( http://google.github.io/truth/ )的Google存储库。Truth

阅读示例我找不到开始使用它的任何优势AssertJ。因此,使用什么只是口味问题。但也许我错过了重点,是吗?

4

1 回答 1

9

来自他们在 GitHub 上的评论之一:

核心区别在于,Truth 的设计包括两个特定的可扩展领域 - 命题失败的策略 - 这样整数的“主题”或字符串的主题可以在完全不同的结果的上下文中重用为失败。一个值得注意的例子是 JUnit 使用 AssertionError 和它的 AssumptionViolationException 之间的区别。Truth 允许您对两者使用相同的命题类。

另一个灵活性领域是能够创建新的断言/命题类型并将它们挂钩,而无需声明要导入的可能冲突的静态方法。这可以用于新类型(例如,添加 protobuf)或现有类型的新用途(例如,被视为 Uris 的字符串)。这是 assertAbout() 功能。

除此之外,Truth 与 AssertJ 非常相似,因为它受到 FEST 的启发,其中 AssertJ 是 2.0 开发线的一个分支。

总而言之,Truth 被设计为更具可扩展性和灵活性,但 AssertJ 对于标准类型的断言将非常棒(可能是最棒的)。

于 2015-09-26T21:56:50.807 回答