在 Java 单元测试中使用 Truth

Truth 是 Google 的一个开源 Java 库,用于解决 JUnit 测试中不明确的断言(Assertion)问题。

JUnit 的断言通常是这么写的:

上述代码断言获得的 List 为空,当断言失败后,JUnit 抛出如下异常:

看到这种错误信息,一般都得回去看代码,才能知道到底出了什么错,然后再分析原因。而 Truth 的目标就是改变这种状况,让错误信息更有意义。比如在 Truth 中,可以这么写:

当断言失败后,会得到如下错误信息:

这样我们看到错误信息的时候,对出现的问题大致有个印象,比起看到一个 AssertionError 一头雾水的情况要好太多了。

而 Truth 不仅提供了常见类型的断言支持,还可以自定义断言,比如有一个二叉树节点类 Node:

我们要针对它写一个 Truth 的断言支持,可以这样:

然后我们就可以做类似如下的断言:

如果 root 没有左子树,则会显示如下错误:

这样无论是代码,还是错误信息都非常直观,一看就能明白,维护起来也方便。


1 条评论 添加

发表评论

电子邮件地址不会被公开。 必填项已用*标注