c++ - 如何对电子邮件客户端进行单元测试

标签 c++ unit-testing email testing email-client

我现在正在开发桌面电子邮件客户端,我想对我的后端进行单元测试。但是,我看不出有什么办法可以做到这一点。为了让我的代码工作,它必须连接到工作邮件服务器。除非我将我的单元测试绑定(bind)到一个电子邮件帐户,并确保该帐户符合我的测试预期的状态,否则我不知道如何管理它。

有没有人对如何测试这种在设计上依赖于外部因素的应用程序有任何想法?

编辑:

补充一些细节:我正在为我的应用程序开发一个 C++ 更高级别的邮件客户端库,它使用 C 库 libEtPan 来实际处理连接到邮件服务器并与之交互的细节。

最佳答案

我会 mock电子邮件服务器,并配置该模拟对象以适本地接受/拒绝电子邮件(取决于您的测试)。

要有效地做到这一点,您需要一个接口(interface)来与您的电子邮件服务器通信。对于测试,实现是一个模拟对象。对于部署,您可以将其替换为直接与邮件服务器对话的实现。

查看此 SO question用于 C++ 模拟框架。

关于c++ - 如何对电子邮件客户端进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1537578/

相关文章:

C++ 首先发生什么——破坏函数的参数或处理函数的返回值?

c++ - XQueryPointer 掩码返回值中的位代表什么键?

java - 如果未在实现业务逻辑的接口(interface)中声明无状态 bean 方法,如何调用它

c# - 如何使用 C# 访问 Outlook 帐户收件箱?

javascript - 使用 Node.js 和 Mailgun 发送 HTML 时遇到问题

c++ - 自定义窗口断言 - 禁用按钮 "retry"

c++ - 如何在 Xcode 6.1.1 中使用 google test 运行本地 c++ 单元测试

c# - 我可以从 Visual Studio 2010 中运行 NUnit 测试吗?

unit-testing - 一个测试用例似乎干扰了另一测试用例

php - 通过 postfix + PHP 以 Apache 用户身份发送电子邮件