PHPUnit:每个请求上的404代码

时间:2016-03-31 12:16:11

标签: zend-framework2 phpunit apigility

我在我的流浪汉机器上有项目A和项目B.通过http://a.local/和http // b.local /工作和访问。这些是Apigility API。

我现在正在用PHPUnit编写测试。 我想测试项目A可以调用项目B上的服务并检查:

  1. 回复代码为200。

  2. 响应是JSON。

  3. 等...

  4. 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文件是相同的。

    任何想法我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:0)

php-unit可能更适合测试应用程序的较小部分(单元测试)。您当然也可以进行Curl测试,但是可能有更好的解决方案(REST测试解决方案/框架)来实现这一目标。

如果要使用Curl测试完整的应用程序,则必须确保php-unit引导程序加载所有应用程序依赖项。

编写一个专门用于使用Curl请求测试rest-api的抽象包装器或测试用例也是一个好主意,因此您不必重复太多代码。检查this answer on stackoverflow以了解如何执行此操作。但我敢打赌,网上有更多的例子,也许你应该做一些谷歌搜索。

答案 1 :(得分:0)

您没有安装ZF \ Rest。创建休息资源的抽象工厂,包括学说控制器,就在那个模块中。