我在我的流浪汉机器上有项目A和项目B.通过http://a.local/和http // b.local /工作和访问。这些是Apigility API。
我现在正在用PHPUnit编写测试。 我想测试项目A可以调用项目B上的服务并检查:
回复代码为200。
响应是JSON。
等...
PHPUnit继续失败,因为在调用任何服务时响应为404(从a到b或从b到a):
{404 => string(54)“http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html” 'title'=> string(9)“Not Found” 'status'=> INT(404) 'detail'=> string(15)“找不到页面。”}
所有网址均可通过浏览器访问。
所有网址均可通过Curl访问。
Browser and Curl返回相同(相同)的响应和http代码。
/ etc / hosts文件已正确配置。
对于cli和fmp,PHP.ini文件是相同的。
任何想法我做错了什么?谢谢!
答案 0 :(得分:0)
php-unit可能更适合测试应用程序的较小部分(单元测试)。您当然也可以进行Curl测试,但是可能有更好的解决方案(REST测试解决方案/框架)来实现这一目标。
如果要使用Curl测试完整的应用程序,则必须确保php-unit引导程序加载所有应用程序依赖项。
编写一个专门用于使用Curl请求测试rest-api的抽象包装器或测试用例也是一个好主意,因此您不必重复太多代码。检查this answer on stackoverflow以了解如何执行此操作。但我敢打赌,网上有更多的例子,也许你应该做一些谷歌搜索。
答案 1 :(得分:0)
您没有安装ZF \ Rest。创建休息资源的抽象工厂,包括学说控制器,就在那个模块中。