让Laravel / PHPUnit记住所有已完成的请求

时间:2017-05-17 18:12:06

标签: php laravel api phpunit

我使用Laravel和PHPUnit。在我的测试中,我有很多请求,它们倾向于测试我的类似REST的API,并且它很好地完成了这项工作。现在我想知道我是否可以使用所有这些测试为我的API制作一些描述/文档。

正式地,我如何记录/访问由$this->get(...)$this->post(...)等创建的所有请求和回复?

1 个答案:

答案 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);
    }

}