Если быть придирчивым, юнит-тест - это автоматический тест, который тестирует единицу в изоляции .Если вы объединяете два или более модулей, это уже не модульный тест, а интеграционный тест .
Однако, в зависимости от типа объединяемых блоков, наличие большого количества таких типовИнтеграционные тесты могут быть вполне нормальными.
Кшиштоф Козмич недавно написал в блоге об этом, где он описывает, как Castle Windsor имеет очень мало юнит-тестов , но много интеграционных тестов AutoFixture также имеет большую долю этих типов интеграционных тестов.Я думаю, что наиболее важным моментом является то, что, как правило, интеграция не должна пересекать границы библиотеки .
. В любом случае фактическую реализацию можно рассматривать как крайнююконец Test Double Continuum , так же как существуют сценарии, в которых имеет смысл использовать заглушки, шутки, шпионы или подделки, существуют также сценарии, в которых может иметь смысл фактическая реализация .
Однако имейте в виду, что вы больше не тестируете устройство в изоляции , поэтому вы вводите соединение между устройствами, которое затрудняет изменениекаждый независимо .
В заключение я все еще считаю это запахом , потому что это всегда должно быть поводом остановиться и подумать.Однако запах указывает не более чем на это, и иногда, подумав, вы можете пойти дальше.