干预Image :: make()在PHPUnit Test中未定义

时间:2018-10-27 03:45:24

标签: laravel phpunit pipelining

我这样写测试

$response = $this->actingAs(\App\Models\User::first())
    ->post(route('profile-menu.update', $profile), [
        'image' => UploadedFile::fake()->image('avatar.jpg', 900, 500)->size(100),
        'profile' => [
            'en' => [
                'title' => 'test',
                'description' => 'test'
            ],
            'id' => [
                'title' => 'test',
                'description' => 'test'
            ]
        ]
    ]);

print_r($response->decodeResponseJson());
$response->assertStatus(302);

并且我将需求导入我的控制器顶部

namespace App\Http\Controllers\Admin;

use File;
use Image;
use Storage;

我已经注册了干预服务提供商并为其编写别名。

测试结果是

1) Tests\Feature\MyTest::testUpdateProfileDetail
Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Image::make()
/opt/atlassian/pipelines/agent/build/app/Http/Controllers/Admin/ProfileMenuController.php:72

我无法弄清楚phpunit无法识别Image :: make(),我的脚本是否存在问题,或者它是否存在管道服务中的错误?

1 个答案:

答案 0 :(得分:0)

我在使用虚拟主机设置的Ubuntu 18.0.4上使用Laravel 5.7时遇到了相同的问题,请键入提示“使用Intervention \ Image \ Facades \ Image”,而不是“使用Intervention \ Image \ Image”