我使用Laravel和PHPUnit。在我的测试中,我有很多请求,它们倾向于测试我的类似REST的API,并且它很好地完成了这项工作。现在我想知道我是否可以使用所有这些测试为我的API制作一些描述/文档。
正式地,我如何记录/访问由$this->get(...)
,$this->post(...)
等创建的所有请求和回复?
答案 0 :(得分:1)
根据您编写测试名称的方式,您可以使用PHPUnit cli上的选项。您可以阅读有关他们的更多信息here。
- testdox-html以HTML格式编写敏捷文档 提交。
--testdox-text编写敏捷文档 要归档的文本格式。
运行测试时,而不是仅运行:
phpunit
尝试:
phpunit --testdox-html documentation.html
更详细description:
PHPUnit的TestDox功能着眼于测试类和所有测试 方法名称并将它们从驼峰式PHP名称转换为句子: testBalanceIsInitiallyZero()变为“余额最初为零”。如果 有几种测试方法,其名称仅在后缀中有所不同 一个或多个数字,例如testBalanceCannotBecomeNegative()和 testBalanceCannotBecomeNegative2(),句子“平衡不能 变得消极“只会出现一次,假设所有这些 测试成功。
输出结果如下:
phpunit --testdox BankAccountTest
PHPUnit 6.1.0 by Sebastian Bergmann and contributors.
BankAccount
[x] Balance is initially zero
[x] Balance cannot become negative
<强>更新强>
就记录所有请求而言,唯一想到的是扩展测试用例。我以一种简单的形式尝试了它,它似乎有效:
abstract class TestCase extends Illuminate\Foundation\Testing\TestCase
{
public function get($uri, array $headers = [])
{
parent::get($uri, $headers);
$txt = "GET REQUEST: ".$uri." HEADERS: ".json_encode($headers)."\n";
file_put_contents('logs.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);
}
}