【问题标题】:Testing REST API controller in PHP with PHPUnit使用 PHPUnit 在 PHP 中测试 REST API 控制器
【发布时间】:2012-07-16 22:12:31
【问题描述】:

我有一个非常小的测试套件,用于测试 REST API 上的 CRUD 操作。我的控制器根据 API 提供的信息显示表单、表格等。我的测试类创建一个新的Buzz 对象并向API 服务器发出请求。

不幸的是,这很糟糕,因为如果我更新或删除某些内容,它会在 API 中被删除。这是一个非常糟糕的测试实践。当使用这样的外部数据源时,如何对我的应用程序进行单元测试?

【问题讨论】:

    标签: php unit-testing tdd phpunit


    【解决方案1】:

    查看 PHPUnit 文档中的测试替身和存根:

    http://www.phpunit.de/manual/current/en/test-doubles.html

    您可以使用它们来替换 API 功能。

    【讨论】:

    • 问题是,我无法模拟服务器响应。我必须根据请求模拟响应,确保两者都正常。
    • 这只是一个简单的 Buzz 用法:提交 GET 和 POST 以及要创建、更新或删除的数据。问题是:我不想与服务数据库/逻辑交互,我只想确保我的客户端通信良好。
    【解决方案2】:

    不幸的是,这很糟糕,因为如果我更新或删除某些内容,它 在 API 中被删除。这是一个非常糟糕的测试实践。我怎样才能 单元测试我的应用程序,当使用外部数据源时 这个?

    创建一些虚假的、可擦除的数据。事实上,您甚至不应该在生产数据库/服务器上运行 PHPUnit 测试。

    【讨论】:

      猜你喜欢
      • 2012-09-08
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2021-04-04
      • 1970-01-01
      • 2010-12-28
      • 2021-07-21
      相关资源
      最近更新 更多