前段时间我在我的 laravel 项目中为我的媒体上传写了一个测试。测试只是将带有图像的 post 请求发送到路由,并检查服务器是否发送 200 状态代码。
use Illuminate\Http\UploadedFile;
/** @test */
public function it_can_upload_image()
{
$response = $this->post('/media', [
'media' => new UploadedFile(__DIR__ . "/test_png.png", 'test_png.png'),
]);
$response->assertStatus(200);
}
当我为 post 参数添加验证规则时,media服务器返回 302 状态代码并且测试失败。但是,当我在浏览器中手动测试媒体上传时,一切正常。
public function uplaodMedia($request)
{
$request->validate([
'media' => 'required'
]);
// ...
}
测试中请求的行为似乎与实际的浏览器请求不同。但是,直到现在我还没有设法解决这个问题。有没有人遇到过类似的事情?
一只名叫tom的猫