我现在正在开发桌面电子邮件客户端,我想对我的后端进行单元测试。但是,我看不出有什么办法可以做到这一点。为了让我的代码工作,它必须连接到工作邮件服务器。除非我将我的单元测试绑定(bind)到一个电子邮件帐户,并确保该帐户符合我的测试预期的状态,否则我不知道如何管理它。
有没有人对如何测试这种在设计上依赖于外部因素的应用程序有任何想法?
编辑:
补充一些细节:我正在为我的应用程序开发一个 C++ 更高级别的邮件客户端库,它使用 C 库 libEtPan 来实际处理连接到邮件服务器并与之交互的细节。
最佳答案
我会 mock电子邮件服务器,并配置该模拟对象以适本地接受/拒绝电子邮件(取决于您的测试)。
要有效地做到这一点,您需要一个接口(interface)来与您的电子邮件服务器通信。对于测试,实现是一个模拟对象。对于部署,您可以将其替换为直接与邮件服务器对话的实现。
查看此 SO question用于 C++ 模拟框架。
关于c++ - 如何对电子邮件客户端进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1537578/