PHPUnit有methods虚拟测试数据库,但我如何测试像curl这样的HTTP服务?
我的类方法获取一个URL并请求发送到服务器的参数。它以json的形式接收答案并将此json发送到另一个解析并返回的方法。
我想为这个类方法创建一个PHPUnit测试用例。我应该为我的服务器提供真实的网址吗?服务器是否应该向此测试用例返回成功/错误消息?
答案 0 :(得分:1)
不要在类的某些方法中使用curl
连接,而是将curl
调用包装在它自己的类中,模拟它,并将它传递给您的类。
通过这种方式,您可以通过让模拟返回真实的json
来测试快乐路径,还可以模拟卷曲错误(使模拟行为类似于真正的curl
库)。
同样适用于解析部分。如果将解析代码移动到它自己的类并将其注入“main”类,那么您将能够模拟它并模拟解析错误。
对于单元测试,您绝不应该进行真正的网络呼叫。