【发布时间】:2018-02-16 13:55:30
【问题描述】:
我的测试方法:
public function testProjectTmpImageCanBeUploaded(){
// \Illuminate\Http\UploadedFile;
$file = m::mock(UploadedFile::class, [
"getClientOriginalName" => "author",
"getClientOriginalExtension" => "jpg",
"isValid" => true,
]);
$file->shouldReceive('move')
->once()
->with(config('app.tmp_folder_name')."/project", 'author-now.jpg');
$url = route('upload-project-image');
$this->call("POST", $url,
[
'field' => 'photo',
'item_name' => 'project',
]
,[],['file' => $file]);
}
我也有方法,它使用下一个代码:
if ($file->isValid()) {
$file->move($path, $fileName);//
}
这段代码运行良好,参数正确,但是当我执行测试时它失败并出现下一个描述:
[2017-09-07 18:21:49] testing.ERROR: Mockery\Exception\NoMatchingExpectationException: 没有为 Mockery_0_Illuminate_Http_UploadedFile::move("C:\OServer\OpenServer\domains\site.local\blog 找到匹配的处理程序\public/tmp/project/", "project-now.jpg")。该方法是意外的,或者它的参数与该方法的预期参数列表不匹配
有人知道,这个测试有什么问题吗?
我使用 Laravel 5.2.45。
【问题讨论】:
标签: php laravel unit-testing laravel-5.2 mockery