Я собираюсь предположить , протестировав серверную часть, на которую вы ссылаетесь, бит кода, который фактически общается с сервером электронной почты, и протестировать остальную часть вашего программного обеспечения, которую вы высмеяли этот слой.
Теперь это могут быть или не быть интеграционные тесты в зависимости от вашей единицы определения. Честно говоря, мне все равно, как вы решите это называть, но если вы напишете несколько автоматических тестов, которые быстро запускаются и выполняются часто, то они могут также использовать ту же платформу, что и ваши модульные тесты.
Я бы попытался написать это, чтобы оно могло работать, по крайней мере, следующими двумя способами: во-первых, он подключается к локальному серверу электронной почты, который вы можете настроить и настроить по своему усмотрению. В Java я использую Dumpster , но я уверен, что подобное существует для C ++.
Вторым было бы подключиться по крайней мере к одному локальному почтовому серверу, который вы можете написать. Тот, который вы можете разбрызгивать сколько угодно (так, чтобы он не был реальным или не использовался совместно разработчиками) и запускать тот же набор тестов против этого. Причина в том, что разработчики SMTP-серверов ненавидят всех, и вы захотите проверить, работает ли ваша заглушка так же, как настоящая. Это я вижу как эквивалент Одна база данных на разработчика .
Теперь, если вы не написали свой собственный SMTP-клиент и у вас есть фасад вокруг существующего стороннего API, я реже "тестирую интеграцию", если предположить, что сторонний API был испорчен Достаточно того, что ошибки уже выпали. Я бы посмотрел на издевательство над сторонним API и проверку правильности работы фасада.
1) Может быть, вы могли бы сделать это как раз во время цикла CI, поэтому затем поделитесь одним набором серверов электронной почты между всеми разработчиками, и при локальном запуске просто используется C ++ Dumpster.