【问题标题】:How to Mock File upload in Laravel如何在 Laravel 中模拟文件上传
【发布时间】:2016-02-09 05:44:01
【问题描述】:

我正在使用 3rd 方 API 来管理我上传的图像,我已经用自己的类抽象了这个 API,并且还编写了类来测试文件上传,但是每次运行测试时文件都会上传到网络上,我想阻止这种情况,并使用模拟来测试是否正在调用上传函数。

我该怎么做?

【问题讨论】:

  • 你可以做一件事:在php中编写一个函数file_upload,它会接受上传文件的url,在这个函数中你调用你的第3方上传图像函数,该函数将返回你的真/假文件成功/失败
  • @Monty 我已经有一个函数可以为我做这件事
  • 您遇到问题的地方。解释更多,没有让你清楚
  • 分享相关代码 sn-ps 可能会有所帮助。

标签: php unit-testing laravel mockery


【解决方案1】:

这就是我的工作。

我创建了一个 UploadedFile 实例(模拟上传的文件)并将其传递给我的服务类 - 这是我测试处理文件上传的服务类的方法。

如果你想测试 Controller 方法,我建议你进行验收测试并使用真实的浏览器发送请求。我找不到合适的方法。

//Mock a uploaded file
  $uploadedFile = new UploadedFile(codecept_data_dir().'/attachments/temporary/' . $filename, $filename, $mimeType, $size);

您需要在顶部添加use \Symfony\Component\HttpFoundation\File\UploadedFile;

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 2017-01-25
    • 2018-10-10
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多