@asdasdqwe

Как тестировать модели в laravel?

Пока плохо знаю тесты

Есть обычный контроллер
public function index(Request $request)
    {
        $users= User::all();

        return view('index', compact('users'));
    }


Как это тестировать? То есть как убедиться, что User::all возвращает данные, просто создать mock и проверить был ли вызван метод all?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
@jazzus
http тесты https://laravel.com/docs/8.x/http-tests
методы assertOk, assertViewHas users, assertSee user full_name. Так покроешь весь запрос.
Если бд перед тестом не уничтожается, то добраться до коллекции юзеров можно методом getOriginalContent() к response
и проверить наличие в коллекции contains методом
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Зачем тестировать метод all() – он всегда вам вернет данные.
Если же вам для тестов понадобится коллекция пользователей, вы можете создать её

$users = User::factory()->count(3)->make();

НО!

Вы спрашиваете про тестирование моделей, а в вопросе речь идет о тестировании контроллера.
Погружение в эту тему можно начать с этой статьи https://code.tutsplus.com/ru/tutorials/testing-lar...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@spaceatmoon
Никогда не тестируйте сторонний код, тестируйте только свой код.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы