Модульное тестирование API (тестирование конечных точек и тестирование всего)

мы создаем API с использованием Laravel, и перед нами стоит важный вопрос:

Должны ли мы проверять все (каждый метод в каждой модели, контроллере и любом другом классе)? или просто протестируйте конечные точки API, поскольку тестирование конечных точек означает, что все остальное будет протестировано, поскольку конечная точка API использует метод контроллера, который, в свою очередь, использует метод модели!

На самом деле, я склоняюсь к тому, что более поздняя проверка конечных точек поможет вам проверить все остальное, но я должен быть уверен, что это правильно.

Edit:

Рассмотрим следующие два момента:

  • тестирование конечных точек означает, что мне нужно отправить HTTP-запрос и дождаться ответа, чтобы выяснить, действительно ли это то, что мне нужно, и это может быть очень плохим аргументом для этого метода.
  • проверка всего означает, что мне нужно найти способ макетировать запрос laravel и его заголовки, и это может быть очень плохим доводом для этого метода.

Любые советы или комментарии будут оценены.

4 голоса | спросил Ahmad Hajjar 4 MarpmWed, 04 Mar 2015 12:14:56 +03002015-03-04T12:14:56+03:0012 2015, 12:14:56

1 ответ


0

Аргументы и сторонники существуют для обеих сторон. Я подозреваю, что по этому вопросу существует столько же мнений, сколько и разработчиков, проводящих любые формы тестирования.

В двух словах:

  • Модульные тесты оказывают большее давление на ваш дизайн. Плохой код больше повредит, если вы тестируете на уровне устройства.
  • Модульные тесты позволяют более точно определять проблемы, поскольку они тестируют каждую единицу работы изолированно. Если модульный тест не пройден, вы знаете, где искать проблему. Если встроенный тест не работает, вы знаете, что что-то не так, но обычно приходится начинать отладку, чтобы найти реальную проблему.

Мне нравится фраза пользователя twitter, которую @everzet недавно использовала:

  

Когда они зеленые, все тесты выглядят одинаково. Это когда они красные ты   увидеть реальную разницу.

С другой стороны, интегрированные тесты предоставляют больше свободы при рефакторинге. Если вы тестируете только на уровне API, вы можете изменить всю реализацию, не влияя на ваши тесты. Если вы проводите тестирование на уровне модулей, рефакторинг может означать, что вам придется обновить /переписать целый ряд тестов.

ответил prgmtc 4 MarpmWed, 04 Mar 2015 13:19:02 +03002015-03-04T13:19:02+03:0001 2015, 13:19:02

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132