PHPUnit:每个请求都有 404 代码

PHPUnit: 404 code on every request

我的 vagrant 机器中有项目 A 和项目 B。可以通过 http://a.local/ 和 http//b.local/ 访问。这些是 Apigility API。

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

  1. 响应码为200。

  2. 响应为JSON。

  3. 等...

PHPUnit 不断失败,因为在调用任何服务(从 a 到 b 或从 b 到 a)时响应为 404:

{404 => 字符串(54)“http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html” 'title' => 字符串 (9) "Not Found" 'status' => 整数(404) 'detail' => 字符串(15)"Page not found."}

所有 URL 都可以通过浏览器访问。

所有 URL 都可以通过 Curl 访问。

浏览器和 Curl return 相同(相同)的响应和 http 代码。

/etc/hosts 文件配置正确。

PHP.ini cli 和 fmp 的文件相同。

知道我做错了什么吗?谢谢!

php-unit 可能更适合测试应用程序的较小部分(单元测试)。您当然也可以进行 Curl 测试,但可能有更好的解决方案(REST 测试 solutions/frameworks)来执行此操作。

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

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

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