繁体   English   中英

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

[英]How to unit test third-party email components in Delphi?

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

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

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

还有,有SMTP。 我知道在Java世界里你有Dumbster

德尔福有哪些替代方案? 使用通常的 嫌疑人写我自己的定制迷你服务器?

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM