@yabivipil

Как писать кошерные юнит тесты в symfony2 когда вся логика в контроллерах?

Есть небольшой проект, суть которого заключается в приеме и обработке заказов. В нем около 10 классов контроллеров, в которых описана вся бизнес логика. Плюс доступ разрешен только для зарегистрированных пользователей. Поэтому возникает несколько вопросов по написанию юнит тестов:
1. Правильно ли все тесты писать через
$client->request('GET', '/');
$client = static::createClient();

и искать совпадения в $crawler + верный код ответа?
2. Правильно ли на каждый тест авторизовывать пользователя?
  • Вопрос задан
  • 531 просмотр
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
юнит тесты - это тесты которые тестируют юниты (то есть подразумевается хоть какая-то степень изоляции, от полной (когда все замокано) до не очень полной (если мокать все не сильно удобно)).

В случае с логикой контроллеров у вас инфраструктура и бизнес логика связаны сильно, потому ваш путь - функциональные и интеграционные тесты. (ибо на данном этапе вынести все в сервисы и изолировать не особо то получится за разумное время).

По вашим пунктам - делайте так, как вам удобно. Ну то есть суть всего сводится к тому что бы с кодом вашего приложения было удобно работать. Тесты это способ упрощения внесения изменений в код. Если вам из-за тестов не удобно - надо придумать как сделать так что бы было удобно (либо у вас что-то не так с тестами либо с кодом, раз его не удобно тестить).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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