如何在Delphi中对第三方电子邮件组件进行单元测试?

时间:2012-05-08 15:18:54

标签: delphi smtp pop3 dunit

我正在编写一些涉及POP3操作的新代码。我试图想出一个允许我编写测试的设计,所以它相当分离并且练习了我正在编写的大部分新代码。

我面临的问题是,我仍然需要验证我使用某些第三方组件发送电子邮件的方式是正确的。这涉及测试,例如,来自有故障的POP3服务器的奇怪响应。

现在,我正在使用模拟POP3客户端,因此我可以测试客户端获取错误或奇怪响应的可能情况下的逻辑。但是,我仍然需要检查这些假设是否属实,并在例如升级第三方组件后保持为真。

此外,还有SMTP。我知道在Java世界中你有Dumbster

Delphi中有哪些替代方案?使用usual suspects编写我自己的自定义迷你服务器?

1 个答案:

答案 0 :(得分:2)

嗯,我不想成为确认你怀疑的人,但是:

(a)你将不得不建立自己的(每个人的需求都不同,至少在Delphi中没有标准的固定装置用于这种类似于Java Dumpster的集成测试)和......

(b)我认为你不应该假设Indy,因为ICS和Synapse很棒,并且使用他们的演示可能会让你想要你想要更快......我会选择ICS。但如果你更了解Indy,那就去吧。

(c)我倾向于使用运行Linux的虚拟机,因为我发现使用在我周围的ISP现实中实际使用的那种POP3 / SMTP服务器进行测试很容易,如果我关心的话它,我可能会为Windows + Exchange服务器创建一个VM,如果我有MSDN许可证,并且能够这样做。

请记住,这不再是单元测试。这是集成测试。即使你用线程而不是进程填充所有内容,也就是你没有进行单元测试,这是一个集成测试。

如果您希望所有开发人员都能够在没有设置的情况下进行测试,那么创建一个始终可用且在各种标准端口上具有各种配置的QA-TEST-NETWORK BOX,然后您的集成测试可以在任何开发人员PC上运行局域网内部设置为零的工作站。在局域网之外,在WAN环境中,这会变得更加繁琐。