我正在测试一个从SOAP服务收集数据的Web应用程序。但PHPUnit默认不调用SOAP服务,而是鼓励你使用模拟对象。
但是我想使用这个SOAP服务测试应用程序。有没有办法强制PHPUnit这样做?
答案 0 :(得分:0)
我强烈建议不要这样做。 单元测试(确保软件稳定性的一个重要因素)绝不应取决于Web服务的可用性。单元测试意味着快速运行,如果他们使用SOAP调用则不会。
如果您确实希望确保Web服务的可用性,请实施某种检查可用性的独立服务。
答案 1 :(得分:0)
您可以简单地使用真实对象和真实数据 - PHPUnit应该乐意允许它。
但请记住,这完全违背了单元测试的目的。使用SOAP服务时,您依赖于完全无法控制的Web流量和服务器响应。任何事情都可能发生在那里,你的测试最终会在这种不受控制的环境中失败。关键是您的测试绝对是确定性的:您应该知道输入数据,控制其处理过程并验证输出。如果你取消数据处理控制,它就不再是单元测试了。