首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让Laravel / PHPUnit记住所有已完成的请求

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

Stack Overflow用户
提问于 2017-05-17 18:12:05
回答 1查看 81关注 0票数 3

我用的是Laravel和PHPUnit。在我的测试中,我有很多请求倾向于测试我的REST类API,而且它做得很好。现在,我想知道我是否可以使用所有这些测试来为我的API做一些描述/文档。

形式上,我如何记录/访问$this->get(...)$this->post(...)等创建的所有请求和响应?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 18:22:20

根据编写测试名称的方式,您可以在PHPUnit cli上使用这些选项。你可以读到更多关于他们的这里

-testdox- HTML将HTML格式的敏捷文档写入文件。 -testdox-文本以文本格式编写敏捷文档到文件。

当您运行测试时,而不仅仅是运行:

代码语言:javascript
运行
复制
phpunit 

尝试:

代码语言:javascript
运行
复制
phpunit --testdox-html documentation.html

更详细一点的描述

PHPUnit的TestDox功能查看一个测试类和所有测试方法名称,并将它们从camel case PHP名称转换为句子: testBalanceIsInitiallyZero()变为“最初为零的平衡”。如果有几个测试方法的名称只有一个或多个数字的后缀不同,例如testBalanceCannotBecomeNegative()和testBalanceCannotBecomeNegative2(),那么假设所有这些测试都成功,"Balance不能变为负数“这句话只会出现一次。

输出如下:

代码语言:javascript
运行
复制
phpunit --testdox BankAccountTest
PHPUnit 6.1.0 by Sebastian Bergmann and contributors.

BankAccount
 [x] Balance is initially zero
 [x] Balance cannot become negative

更新

至于记录所有请求,唯一想到的就是扩展测试用例。我用一种简单的方式尝试了一下,它似乎奏效了:

代码语言:javascript
运行
复制
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);
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44032095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档