作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Lumen 5.5,我编写了简单的上传文件的应用程序。
我这样写测试(遵循 this 教程)
<?php
class UploadImageTest extends TestCase
{
Use DatabaseMigrations;
public function testUploadingImageSuccessfully()
{
$this->json('POST', '/images', [
'image' => UploadedFile::fake()->image('image.jpg')
])->assertResponseOk()
}
}
问题是在我的 Controller 中,$request->file('image')
返回 null。
<?php
use Illuminate\Http\Request;
class UploadController extends Controller
{
public function upload(Request $request)
{
if ($request->file('image')) { // always return null
return "File is uploaded!";
}
return "File is not uploaded!";
}
}
我检查了其他问题(如 this one)并尝试了给定的解决方案,但没有成功!
最佳答案
我在搜索同一问题的答案时遇到了这个问题,但不确定它是否相关,所以我提出了一个与我的用例相关的问题。 (Here)
解决方案很简单:UploadedFile::fake() 不适用于 JSON,因为它使用 XmlHttpRequest 伪造文件上传(据我所知)。因此,您必须从此更改您的测试:
public function testUploadingImageSuccessfully()
{
$this->json('POST', '/images', [
'image' => UploadedFile::fake()->image('image.jpg')
])->assertResponseOk()
}
为此:
public function testUploadingImageSuccessfully()
{
$this->call('POST', '/images', [
'image' => UploadedFile::fake()->image('image.jpg')
])->assertResponseOk()
}
希望对您有所帮助!
关于php - 在 lumen 5.5 中测试文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408641/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!