我想测试用于文件上传的 restful API 测试。
我尝试运行:
$I->sendPOST($this->endpoint, $postData, ['file' => 'example.jpg']);
我希望它的行为与用户在名称为 file
的文件输入中发送的 example.jpg
文件相同,但它似乎无法以这种方式工作。我得到:
[PHPUnit_Framework_ExceptionWrapper] An uploaded file must be an array or an instance of UploadedFile.
是否可以在 codeception 中使用 REST 插件上传文件?文档非常有限,很难说如何去做。
我还在使用 Google Chrome
的 Postman
插件测试 API,我可以使用这个插件毫无问题地上传文件。
最佳答案
我最近一直在努力解决同样的问题,发现有另一种方法可以在不使用 Symfony 的 UploadedFile 类的情况下解决这个问题。您只需要以与 $_FILES 数组相同的格式传递包含文件数据的数组。例如,这段代码对我来说效果很好:
$I->sendPOST(
'/my-awesome-api',
[
'sample-field' => 'sample-value',
],
[
'myFile' => [
'name' => 'myFile.jpg',
'type' => 'image/jpeg',
'error' => UPLOAD_ERR_OK,
'size' => filesize(codecept_data_dir('myFile.jpg')),
'tmp_name' => codecept_data_dir('myFile.jpg'),
]
]
);
希望这对某人有所帮助并防止检查框架的源代码(我被迫这样做,因为文档跳过了如此重要的细节)
关于rest - 在 codeception 中将文件发送到 Restful 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28437633/