阅读(595) (0)

PHPUnit9.0 命令行测试执行器-TestDox

2022-03-22 11:15:51 更新

PHPUnit 的 TestDox 功能着眼于测试类及其所有测试方法的名称,将它们驼峰式大小写(camel case)(或蛇式大小写(snake_case))拼写的 PHP 名称转换为句子:​testBalanceIsInitiallyZero()​(或 ​test_balance_is_initially_zero()​)转化为“Balance is initially zero”。如果有多个测试方法的名字互相之间的差异只是一个或多个数字的后缀,例如 ​testBalanceCannotBecomeNegative()​ 和 ​testBalanceCannotBecomeNegative2()​,假如所有这些测试都成功,句子“Balance cannot become negative”只会出现一次。

来看一下从 ​BankAccount ​类生成的敏捷文档:

$ phpunit --testdox BankAccountTest.php
PHPUnit latest.0 by Sebastian Bergmann and contributors.

BankAccount
 ✔ Balance is initially zero
 ✔ Balance cannot become negative

另外,敏捷文档也能以 HTML 或纯文本格式生成并写入文件中,用 ​--testdox-html​ 和 ​--testdox-text​ 参数即可。

敏捷文档可以用于将对项目所使用的外部包所做出的假设文档化。使用外部包,你就暴露于这个包的行为与你所预期的不同的风险中,并且包的未来版本可能在你所不知道的情况下有微妙的改变并破坏你的代码。每次做出假设时就编写一个对应的测试可以处理这些风险。如果测试成功,那么假设就有效。如果所有的假设都通过测试来文档化,外部包在未来发布新版本就不会引起忧虑:如果测试成功,那么系统就应当能继续正常运作。