Delphi 中用于单元测试的 HTTP 服务器
-
13-11-2019 - |
题
我需要在我的 Delphi 应用程序中测试一些 HTTP 组件。我使用 DUnit 并希望在测试中添加一些自动化功能。
所以我的测试代码需要启动本地 HTTP 服务器,对其进行配置(例如,准备在 3 秒内断开连接,或模拟低带宽,或要求登录/密码等),运行我的单元测试并关闭 HTTP服务器。
是否有一些完全适用于 Delphi/DUnit 的 HTTP 服务器?
我知道 Mozilla 团队有 这样的服务器, ,但是集成到DUnit中却不太容易。
解决方案
我用印地的 TIdHttpServer
在同一流程中提供服务。
这种方法允许我检查传入的请求是否正确,以及检查客户端的行为。
此外,您可以在一个测试用例的基础上单独设置服务器,使您的单元测试更容易理解(这意味着您在其他地方没有“测试”的一部分)。
其他提示
您可以使用单元测试/ dunit来构建自动集成测试。说,随着HTTP客户端的HTTP组件拨打Web服务。您可以制作自己的模拟Web服务,或者只是使用任何公共网络服务,例如来自谷歌或亚马逊的任何公共网络服务。因此,您只需要创建Google或Amazon开发人员帐户,并消耗一些基本服务功能进行测试。
如果您正在测试SOAP服务,请使用SOAPUI基于WSDL站起来“模拟”服务。 您可以返回各种响应(顺序地,或使用一些简单的脚本来匹配对请求内容的响应。)我通过匹配我的请求中的“请求ID”(只是一个GUID)来完成此操作。dunit测试,以苏帕苏的回应。它是一个简单的XPath查询,以匹配它们。
您可以将其返回“罐头”错误/异常,当然当它没有运行时,您将拥有“没有人的家”测试用例。
不隶属于 StackOverflow