Это зависит от того, что вы пытаетесь проверить. Модульные тесты с отключенными соавторами великолепны, потому что
- Они действительно очень быстрые
- Они маленькие и простые для понимания
- Они не зависят от более широкого мира, что облегчает их запуск
- Они обеспечивают отличную локализацию дефектов
Однако чистые модульные тесты не могут сказать вам, правильно ли вы сконфигурировали ваши объекты в вашем контейнере IoC, работает ли строка подключения к базе данных и т. Д. Вам нужен тест, который запускает ваш контейнер IoC и действительно обращается к БД, чтобы доказать, эти вещи.
Если вы напишете как можно больше своих тестов как можно более чистых, автономных модульных тестов, ваша сборка останется быстрой. Это очень важно, так как медленный булид работает меньше. Тем не менее, не забудьте добавить несколько проводных тестов, чтобы доказать, что ваше приложение «держится вместе».
Например, у нас есть (один) тест для каждого сервиса в нашем контейнере, который доказывает, что мы можем запросить его из контейнера IoC. Это доказывает, что мы подключены, с тех пор это тесты модулей полностью. У нас много чистых юнит-тестов.
Вся партия затем включается в некоторые функциональные тесты уровня приложения, чтобы доказать, что само приложение выполняет то, что хочет пользователь.
Следует иметь в виду стоимость времени каждого типа теста. Переход от чистого модуля -> проводного -> функционального тестирования стоит порядка времени выполнения и сложности, когда они ломаются.