Я пойду ни с одним.Это функциональный тест.
Модульные тесты тестовые блоки кода.Отсюда и название.Единица кода, как правило, представляет собой функцию, класс или модуль какого-либо рода.
Интеграционные тесты подтверждают, что наши единицы кода работают вместе, как и ожидалось.Но это все еще только тестирование кода.
Функциональные тесты тестирование реального программного обеспечения в развернутом состоянии через открытые интерфейсы.
Так, в Node модульное тестирование может бытьсамостоятельно протестировать один из ваших модулей JavaScript и смоделировать зависимости.Интеграционный тест будет проверять, что ваши модули работают вместе, и макетировать только крайние края системы.А функциональный тест будет проверять, что конкретная конечная точка работает по HTTP и ничего не издевается.
Я добавлю, что при написании ваших тестов я рекомендую придерживаться принципов DRY.Если у вас есть модульный тест, который проверяет что-то, вам не нужно проверять это в интеграционном тесте.Просто подтвердите, что устройства работают вместе, как и ожидалось.И то же самое с функциональными тестами.Не проверяйте интеграцию, что единицы работают вместе.Убедитесь, что конечные точки соответствуют ожидаемому поведению.