я пишу такой тест
$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
Я не могу понять, как Image :: make () не распознается phpunit, есть ли проблема с моим скриптом или это ошибка из службы конвейерной обработки?
я уже сделал это как псевдоним в конфигурации, он должен работать правильно? если я делаю это за пределами тестовой среды / моего локального компьютера, он работает, но затем он выдает ошибку 500, в которой говорится, что Image :: make () не определено. я думаю что-то не так с окружающей средой
У меня была такая же проблема в Laravel 5.7, работающем на Ubuntu 18.0.4 с настройками виртуального хоста, введите подсказку 'use Intervention \ Image \ Facades \ Image' вместо 'use Intervention \ Image \ Image'
Кто-то уже предложил это ОП. Я бы посоветовал вам просмотреть комментарии к вопросу, прежде чем писать ответ
используйте Intervention \ Image \ Facades \ Image; включить это