您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit使用testdox生成敏捷文档
发布时间:2021-09-16 23:19:57编辑:雪饮阅读()
在了解使用testdox生成敏捷文档时候先了解下什么是蛇式命名法。
在计算机术语中,snake_case指的是一种变量命名规则。
snake_case要求短语内的各个单词或缩写之间以_(下划线)做间隔。
TestDox
PHPUnit 的 TestDox 功能着眼于测试类及其所有测试方法的名称,将它们驼峰式大小写(camel case)(或蛇式大小写(snake_case))拼写的 PHP 名称转换为句子:testBalanceIsInitiallyZero()(或 test_balance_is_initially_zero())转化为“Balance is initially zero”。
那么像是下面这种情况就是驼峰和蛇式都存在(函数名相同,只是命名方式一个为驼峰一个为蛇式,那么在php中被视为两个方法)的情况下造成两个方法,这样两个方法就都会转换为像是上面“Balance is initially zero”。
实例如:BankAccountTest.php:
<?php declare(strict_types=1);
//use PHPUnit\Framework\TestCase;
namespace TestNamespace;
use PHPUnit\Framework\TestCase;
class BankAccountTest extends TestCase
{
public function testBalanceIsInitiallyZero()
{
$this->assertTrue(true);
}
public function test_balance_is_initially_zero()
{
$this->assertTrue(false);
}
}
//use PHPUnit\Framework\TestCase;
namespace TestNamespace;
use PHPUnit\Framework\TestCase;
class BankAccountTest extends TestCase
{
public function testBalanceIsInitiallyZero()
{
$this->assertTrue(true);
}
public function test_balance_is_initially_zero()
{
$this->assertTrue(false);
}
}
C:\Users\Administrator>D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar --testdox C:\Users\Administrator\PhpstormProjects\untitled\BankAccountTest.php
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
Bank Account (TestNamespace\BankAccount)
✔ Balance is initially zero
✘ Balance is initially zero
│
│ Failed asserting that false is true.
│
│ C:\Users\Administrator\PhpstormProjects\untitled\BankAccountTest.php:13
│
Time: 00:00.010, Memory: 20.00 MB
Summary of non-successful tests:
Bank Account (TestNamespace\BankAccount)
✘ Balance is initially zero
│
│ Failed asserting that false is true.
│
│ C:\Users\Administrator\PhpstormProjects\untitled\BankAccountTest.php:13
│
FAILURES!
Tests: 2, Assertions: 2, Failures: 1.
这里可以看到重复出现了Balance is initially zero,但是这里并没有合并为一个。
那么什么是敏捷文档,就我个人理解:
你可以看到上面是一个方法列表,虽然这里我故意让他造成了相同的两个方法,但是也可以同样看到它对每个方法有用对号和叉叉进行标记该方法是否通过了测试,若没有通过测试还报出具体没有通过测试的原因。
由于这两个方法,这里都是无参的,若是有参则还会显示的更全面点的。
我想这应该就是敏捷文档了。
那么下面这句话应该就不难理解了:
敏捷文档可以用于将对项目所使用的外部包所做出的假设文档化。使用外部包,你就暴露于这个包的行为与你所预期的不同的风险中,并且包的未来版本可能在你所不知道的情况下有微妙的改变并破坏你的代码。每次做出假设时就编写一个对应的测试可以处理这些风险。如果测试成功,那么假设就有效。如果所有的假设都通过测试来文档化,外部包在未来发布新版本就不会引起忧虑:如果测试成功,那么系统就应当能继续正常运作。
关键字词:testdox,敏捷文档
相关文章
-
无相关信息