我用的是Laravel和PHPUnit。在我的测试中,我有很多请求倾向于测试我的REST类API,而且它做得很好。现在,我想知道我是否可以使用所有这些测试来为我的API做一些描述/文档。
形式上,我如何记录/访问$this->get(...)、$this->post(...)等创建的所有请求和响应?
发布于 2017-05-17 18:22:20
根据编写测试名称的方式,您可以在PHPUnit cli上使用这些选项。你可以读到更多关于他们的这里。
-testdox- HTML将HTML格式的敏捷文档写入文件。 -testdox-文本以文本格式编写敏捷文档到文件。
当您运行测试时,而不仅仅是运行:
phpunit 尝试:
phpunit --testdox-html documentation.html更详细一点的描述
PHPUnit的TestDox功能查看一个测试类和所有测试方法名称,并将它们从camel case PHP名称转换为句子: testBalanceIsInitiallyZero()变为“最初为零的平衡”。如果有几个测试方法的名称只有一个或多个数字的后缀不同,例如testBalanceCannotBecomeNegative()和testBalanceCannotBecomeNegative2(),那么假设所有这些测试都成功,"Balance不能变为负数“这句话只会出现一次。
输出如下:
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);
    }
}https://stackoverflow.com/questions/44032095
复制相似问题