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