0

我正在测试一个从 SOAP 服务收集数据的 Web 应用程序。但是 PHPUnit 默认不调用 SOAP 服务,而是鼓励您使用 Mock Objects。

但是我想使用这个 SOAP 服务测试应用程序。有没有办法强制 PHPUnit 这样做?

4

2 回答 2

0

你可以简单地使用真实的对象和真实的数据——PHPUnit 应该很乐意允许它。

但是请记住,这完全违背了单元测试的目的。使用 SOAP 服务时,您依赖的 Web 流量和服务器响应完全不受您的控制。在这种不受控制的环境中,任何事情都可能发生,您的测试最终会失败。关键是您的测试是绝对确定性的:您应该知道输入数据,控制其处理过程并验证输出。如果你去掉数据处理控制,它就不再是单元测试了。

于 2013-08-01T09:06:29.053 回答
0

我强烈建议不要这样做。单元测试(确保软件稳定性的一个重要因素)永远不应依赖于 Web 服务的可用性。并且单元测试旨在快速运行,如果他们使用 SOAP 调用则不会。

如果您真的想确保 Web 服务的可用性,请实现某种检查可用性的独立服务。

于 2013-08-01T08:37:44.697 回答