我是靠谱客的博主 忧伤月光,这篇文章主要介绍Larave之phpunit单元测试(三)之测试文件上传,现在分享给大家,希望可以做个参考。

测试文件上传

其实laravel官网文档中是有介绍的
IlluminateHttpUploadedFile 提供了一个 fake 方法用于生成虚拟的文件或者图像以供测试之用。它可以和 Storage facade 的 fake 方法相结合,大幅度简化了文件上传测试。举个例子,你可以结合这两者的功能非常方便地进行头像上传表单测试:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php namespace TestsFeature; use IlluminateFoundationTestingRefreshDatabase; use IlluminateFoundationTestingWithoutMiddleware; use IlluminateHttpUploadedFile; use IlluminateSupportFacadesStorage; use TestsTestCase; class ExampleTest extends TestCase {     public function test_avatars_can_be_uploaded()     {         Storage::fake('avatars');         $file = UploadedFile::fake()->image('avatar.jpg');         $response = $this->post('/avatar', [             'avatar' => $file,         ]);         Storage::disk('avatars')->assertExists($file->hashName());     } }


如果您想断言一个给定的文件不存在,则可以使用由 Storage facade 提供的 AssertMissing 方法:

复制代码
1
2
3
4
5
Storage::fake('avatars'); // ... Storage::disk('avatars')->assertMissing('missing.jpg');

虚拟文件定制
在使用 fake 方法创建文件时,你可以指定图像的宽高以及大小,从而更好的验证测试规则:

复制代码
1
UploadedFile::fake()->image('avatar.jpg', $width, $height)->size(100);

除创建图像外,你也可以用 create 方法创建其他类型的文件:

复制代码
1
UploadedFile::fake()->create('document.pdf', $sizeInKilobytes);

如果需要,可以向该方法传递一个 $mimeType 参数,以显式定义文件应返回的 MIME 类型:

复制代码
1
2
3
UploadedFile::fake()->create(     'document.pdf', $sizeInKilobytes, 'application/pdf' );

最后

以上就是忧伤月光最近收集整理的关于Larave之phpunit单元测试(三)之测试文件上传的全部内容,更多相关Larave之phpunit单元测试(三)之测试文件上传内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部