我将假设通过测试后端您指的是实际与电子邮件服务器对话的代码位,并测试您已模拟该层的其余软件。
现在这可能是也可能不是集成测试,具体取决于您的定义单元。坦率地说,我不在乎您决定如何称呼它,但是如果您编写一些运行迅速且经常执行的自动化测试,那么它们可能会使用与您的单元测试相同的平台。
我会尝试编写它,以便它至少可以通过以下两种方式工作 - 第一种是它连接到您可以根据需要设置和配置的进程本地电子邮件服务器。在 Java 中,我使用Dumpster,但我确信 C++ 也存在类似的东西。第二种方法是连接到至少一个您可以编写脚本的本地电子邮件服务器。您可以随心所欲地喷溅(因此不是真实的或在开发人员之间共享¹)并针对它运行相同的测试集。原因是 SMTP 服务器的开发人员讨厌所有人,您会想要检查您的存根是否与真实的东西一样工作。我认为这相当于每个开发人员一个数据库。
现在,如果您还没有编写自己的 SMTP 客户端并且只是围绕现有的 3rd 方 API 有一个外观,那么我不太可能在假设 3rd 方 API 已经被严重破坏以至于错误已经出现的情况下进行“集成测试”。我会考虑模拟第 3 方 API 并验证外观是否按预期工作。
1) 也许你可以在 CI 周期中这样做,然后在所有开发人员之间共享一组电子邮件服务器,本地运行只使用 C++ Dumpster。