Да, мы все еще называем это юнит-тестом, если функции вызывают другие функции.
Модульные тесты должны проверять публичное поведение класса, а не частные реализации. Как предполагает это тестирование Google на туалетной статье .
Если вы следуете правилам Чистого кода, тогда ваши функции не должны быть длиннее 4 строк кода. Это делает невозможным не тестировать другую приватную функцию с вашими юнит-тестами.
Почему бы вам не протестировать большинство закрытых функций отдельно? Потому что рефакторинг заставит вас обновлять все свои юнит-тесты реализации. Это будет разочаровывать, если у вас их много, в то время как публичное поведение не должно меняться во время рефакторинга, и, следовательно, тест не должен обновляться. Вы должны быть в состоянии проверить рядовых с их публичным родителем. Иногда это может стоить проверить сложные рядовые, но интересно, должны ли они быть отдельным классом самостоятельно?
Интеграционный тест :
Теперь, если функция является частью другого класса, она отличается. Тогда мы бы назвали это компонентным тестированием или интеграционным тестированием. Вы интегрируете несколько классов и проводите тестирование против них. Функция B будет зависеть от функции C. Чтобы выполнить модульное тестирование функции B, вы можете использовать внедрение зависимостей, чтобы изолировать функцию, которую вы тестируете, теперь это снова будет модульный тест.
Нильс ван Реймерсдал
источник