【发布时间】:2016-07-20 23:13:56
【问题描述】:
我想在 Laravel 5.2 上对文件上传进行一些单元测试。
这是我的做法,请参考answer:
/** app/Http/routes.php **/
Route::post('upload', function() {
$fileExists = false;
if ($_FILES['images']) {
$fileExists = true;
}
return ['result' => $fileExists];
});
/** tests/ExampleTest.php **/
public function testUploadFile()
{
$file = new \Symfony\Component\HttpFoundation\File\UploadedFile(
base_path() . '/tests/files/profile.png', 'profile.png');
$response = $this->call('POST', 'upload',
[
'firstname' => 'firstname',
'lastname' => 'lastname',
'promotion' => '2016',
'isCoop' => 1
],
[
'images' => [$file]
]
);
}
但是,当我检查代码覆盖率结果时,routes.php 文件中的 if 语句中的那一行没有被执行,如下所示。
上传的文件好像没有插入$_FILES变量,所以检测为空。
知道如何解决它..?谢谢。
注意:我使用Larave创建API服务,所以我没有使用表单上传文件
【问题讨论】:
标签: phpunit code-coverage laravel-5.2