3

我正在编写一些涉及 POP3 操作的新代码。我正在尝试提出一种允许我编写测试的设计,因此它是相当解耦的,并且可以练习我正在编写的大部分新代码。

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

现在,我正在使用模拟 POP3 客户端,因此我可以围绕客户端收到错误或奇怪响应的可能场景测试逻辑。但是,我仍然需要检查这些假设是否正确,并且在例如升级第三方组件之后仍然正确。

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

我在德尔福有哪些选择?使用通常的 嫌疑人编写我自己的自定义迷你服务器?

4

1 回答 1

2

好吧,我讨厌成为确认您怀疑的人,但是:

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

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

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

请记住,这不再是单元测试。这是集成测试。即使你用线程而不是进程把它全部塞进去,那也不是你有的单元测试,它是一个集成测试。

如果您希望您的所有开发人员无需设置即可进行测试,那么创建一个始终可用且在各种标准端口上具有各种配置的 QA-TEST-NETWORK BOX,那么您的集成测试可以在任何开发人员 PC 工作站上运行零设置,在你的局域网内。在您的 LAN 之外,在 WAN 环境中,这会变得更加复杂。

于 2012-05-10T14:18:09.100 回答