正在获取单元测试的状态代码响应标头


Getting status code response headers for unit tests

我正在阅读这个问题,因此我可以成功地测试表单的标题:

header('X-Something: value');
header('Content-Type: text/html');

但是,我有设置响应代码的代码,我想验证这在我的单元测试中是否也能正常工作,但它们不会在xdebug_get_headers返回值中返回。电话看起来像:

header('HTTP/1.1 201 Created');
header('HTTP/1.1 422 Unprocessable Entity');

是否也要检查此标头?或者我只需要依靠其余的返回值来证明我的控制器正在

工作

您可以使用http_response_code()函数返回您设置的值:

print_r("Response Code: " . http_response_code());

结果:

Response Code: 422

文档:http_response_code()-PHP 5.4.0+

如果我正确理解了所有内容,那么您正在寻找headers_list(),它返回已发送(或准备发送)的响应标头列表,请参阅文档。执行以下操作:

header("X-Sample-Test: foo");
header('Content-type: text/plain');
var_dump(headers_list());

将输出以下内容:

array(3) {
    [0]=>
    string(23) "X-Powered-By: PHP/5.1.3"
    [1]=>
    string(18) "X-Sample-Test: foo"
    [2]=>
    string(24) "Content-type: text/plain"
}