PHPUnit5.0中文手册14. 扩展 PHPUnit编写自定义断言

编写自定义断言

编写自定义断言时,最佳实践是遵循 PHPUnit 自有断言的实现方式。正如 Example 14.1, “PHPUnit_Framework_Assert 类的 assertTrue() 与 isTrue() 方法”中所示,assertTrue() 方法只是对 isTrue()assertThat() 方法的外包覆:isTrue() 创建了一个匹配器对象,将其传递给 assertThat() 进行评定。

Example 14.1. PHPUnit_Framework_Assert 类的 assertTrue() 与 isTrue() 方法


Example 14.2, “PHPUnit_Framework_Constraint_IsTrue 类”展示了 PHPUnit_Framework_Constraint_IsTrue 是如何扩展针对匹配器对象(或约束)的抽象基类 PHPUnit_Framework_Constraint 的。

Example 14.2. PHPUnit_Framework_Constraint_IsTrue 类


在实现 assertTrue()isTrue() 方法及 PHPUnit_Framework_Constraint_IsTrue 类时所付出的努力带来了一些好处,assertThat() 能够自动负责起断言的评定与任务簿记(例如为了统计目的而对其进行计数)工作。此外, isTrue() 方法还可以在配置仿件对象时用来作为匹配器。