Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 正在测试Laravel中的输入::hasFile_Testing_Laravel_File Upload_Phpunit_Facade - Fatal编程技术网

Testing 正在测试Laravel中的输入::hasFile

Testing 正在测试Laravel中的输入::hasFile,testing,laravel,file-upload,phpunit,facade,Testing,Laravel,File Upload,Phpunit,Facade,我正在使用 if (Input::hasFile('index')) doSomething(); 检查文件是否已上载 Input::shouldReceive('hasFile')->andReturn(true) 现在我想写一个PHPUnit测试用例,系统需要像上传“索引”文件一样运行 Input::shouldReceive('hasFile')->andReturn(true) 不起作用 laravel文档中还有一个注意事项:您不应该模拟请求外观。相反,在运行测试时,将

我正在使用

if (Input::hasFile('index')) doSomething();
检查文件是否已上载

Input::shouldReceive('hasFile')->andReturn(true)
现在我想写一个PHPUnit测试用例,系统需要像上传“索引”文件一样运行

Input::shouldReceive('hasFile')->andReturn(true)
不起作用

laravel文档中还有一个注意事项:您不应该模拟请求外观。相反,在运行测试时,将所需的输入传递给call方法

所以也许这毕竟不是个好主意

我尝试模拟\Symfony\Component\HttpFoundation\File\UploadedFile并将其传递给我的调用方法,但在为所有方法定义了“shouldReceive”之后,系统仍希望它不能像我需要的那样工作

有没有办法测试调用,以便
Input::hasFile
在不上载实际文件的情况下返回TRUE


谢谢

我不确定您是如何编写模拟测试代码的。但您可以通过以下方式进行尝试:

$mockInput = Mockery::mock('\Illuminate\Http\Request');
$mockInput->shouldReceive('file')->andReturn($my_test_data);
Input::swap($mockInput);
希望这有帮助


文件
这是表单或API中用于接收上传文件的输入名称。您可以将其更改为参数的名称。

嗯……在提问之前,我已经看到过这种尝试。这对我不起作用。我无法使“hasFile”方法返回true。