【问题标题】:PHPUnit: 404 code on every requestPHPUnit:每个请求的 404 代码
【发布时间】:2016-07-19 21:31:31
【问题描述】:

我的流浪机器中有项目 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" '标题' => 字符串(9)“未找到” '状态' => 整数(404) '细节' => string(15) "页面未找到。"}

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

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

Browser 和 Curl 返回相同(相同)的响应和 http 代码。

/etc/hosts 文件配置正确。

php.ini 文件对于 cli 和 fmp 是相同的。

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

【问题讨论】:

    标签: zend-framework2 phpunit laminas-api-tools


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您没有安装 ZF\Rest。用于创建剩余资源(包括学说控制器)的抽象工厂位于该模块中。

      【讨论】:

      • 很抱歉,答案太晚了,zf-campus/rest 已安装。我仍然得到 404 甚至更多,在 localhost 中调用同一个项目,我从任何其他软件和 php-unit 得到不同的响应。看起来 php-unit 只会得到 404 或 200 并且无法获取任何其他代码。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 2021-12-13
      • 2016-02-21
      • 2022-01-19
      • 2021-10-04
      相关资源
      最近更新 更多