Все, что я должен добавить к ответу @ Stephane: это зависит от того, насколько вы подходите к юнит-тестированию в своей собственной практике разработки.Если у вас есть сквозные интеграционные тесты, включающие реальную базу данных, которую вы создаете и исправляете по мере необходимости - при условии, что вы охватили все различные пути в вашем коде и различные возможности, которые могут возникнуть при взломе пользователями ваших пост-данныхи т. д. - вы покрыты с точки зрения ваших тестов, говорящих о том, работает ли ваша система, что, вероятно, является основной причиной для проведения тестов.
Хотя я бы догадался, что каждый из ваших тестовпробежка по каждому слою вашей системы делает разработку на основе тестов очень сложной.Необходимость каждого слоя на месте и работа для прохождения теста в значительной степени исключают необходимость тратить несколько минут на написание теста, несколько минут на его прохождение и повторение.Это означает, что ваши тесты не могут направлять вас с точки зрения поведения и взаимодействия отдельных компонентов;например, ваши тесты не заставят вас делать вещи слабосвязанными.Также, скажем, вы добавили новую функцию, и что-то сломалось в другом месте;детальные тесты, которые работают с изолированными компонентами, значительно упрощают отслеживание того, что пошло не так.высмеял или заглушил в последнем.