@asdasdqwe

Как создать mock для моделей?

Контроллер
public function index(Request $request)
    {
       $users =  User::all();
        return view('index', compact('users '));
    }

Тест
public function test_index()
    {
       // Куда передать этот мок?
        $mock = $this->mock(User::class, function (MockInterface $mock) {
            $mock->shouldReceive('all')->once()->andReturn([]);
        });

        $response = $this->get('/')
        ->assertViewHasAll(['users'])
    }

Результат: Method all() from Mockery_0_App_Models_User should be called
exactly 1 times but called 0 times.

Фасады работают автоматический (Mail::fake(), Event::fake() итд)

Как создать mock модели, чтобы вместо all() передать собственные данные?
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
Так как используете фасады, мокайте их User::shouldReceive ....
https://laravel.com/docs/8.x/mocking
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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