Как исправить ошибку в unit тесте?

В классе User есть такой метод:
public static function register(RegisterRequest $request):self
{
         return static::create([
             'name'=>$request->name,
             'email'=>$request->email,
             'password'=>Hash::make($request->password),
             'verify_token' => Str::random(),
             'status' => self::STATUS_WAIT,
         ]);
    }

Вот так пытаюсь его проверить:
public function create():void
    {
        $user=User::register($this->request);
        self::assertNotEmpty($user);
        self::assertEquals($this->name,$user->name);
        self::assertEquals($this->email,$user->email);
        self::assertNotEmpty($user->password);
        self::assertEquals($this->password,$user->password);
        self::assertTrue($user->isWait());
        self::assertFalse($user->isActive());
    }

Вот так создаю RegisterRequest:
public function setUp(): void
    {
        parent::setUp();
        $this->request= $this->createMock(RegisterRequest::class);
        $this->request->name=$this->name;
        $this->request->email=$this->email;
        $this->request->password=$this->password;
    }

Получаю такую ошибку:
Caused by
ReflectionException: Class config does not exist

/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:809
/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:691
/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:796
/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:637
/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:781
/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php:1284
/www/app/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:288
/www/app/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:101
/www/app/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:77
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1342
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1308
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1114
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1031
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1067
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1020
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1734
/www/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1746
/www/app/app/Entity/User.php:84
/www/app/tests/Unit/RegisterTest.php:69

Ссылается на эту строчку:
'status' => self::STATUS_WAIT,
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Это не совсем юнит-тесты. Хочешь тестить юнитно - делай моки, дропай статики и елоквент.

А так, как тестишь ты, можно только с инициализацией фреймворка, и.е. екстендится нужно от TestCase'а что в tests лежит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы