我有以下代码。
$I = new ApiTester($scenario);
$I->wantTo('Test API Endpoint');
$I->authenticateAsUserById(1);
$I->haveHttpHeader('Content-Type', 'application/json');
$I->sendPOST('example', ['foo' => 'bar']);
以下api.suite.yml
actor: ApiTester
modules:
enabled:
- REST:
url: 127.0.0.1
depends: PhpBrowser
part: Json
- Doctrine2:
depends: Symfony2
- \Helper\Api
- Symfony2:
app_path: 'app'
var_path: 'var'
environment: 'test'
debug: false
但是,在详细模式下运行测试时,命令输出似乎没有发送请求标头。
[Request] POST 127.0.0.1/example {"foo":"bar"}]}
[Request Headers] []
[Page] 127.0.0.1/example
[Response] 400
[Request Cookies] []
[Response Headers] {"Server":["nginx/1.10.3 (Ubuntu)"],"Date":["Fri, 15 Dec 2017 23:18:13 GMT"],"Content-Type":["text/html"],"Content-Length":["182"],"Connection":["close"]}
[Response] <html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
这似乎是让服务器返回错误的请求。
有没有人使用Codeception和Rest Bundle遇到这个问题?
这似乎是Symfony2插件和PHPBrowser之间发生冲突的问题,其中symfony正在禁用这些功能。