【问题标题】:Testing REST APIs using PHPUnit使用 PHPUnit 测试 REST API
【发布时间】:2012-09-08 20:53:10
【问题描述】:

我正在构建一组 RESTful API,现在需要为它们编写单元测试。我不确定单元测试应该实际测试什么。

单元测试是否应该检查从服务器接收到的响应对于各种输入是否正确?如果是这样,预先定义一组正确的响应格式并对照它们检查响应是否是一种好习惯?

更新

我通过 CURL 调用这些服务,我绝对可以检查状态码。不同输入的响应可能会有所不同,所以我应该检查所有可能的响应吗?

通常如何使用 PHPUnit 对 RESTful API 进行单元测试?

【问题讨论】:

    标签: php rest phpunit


    【解决方案1】:

    您可以将 JUnit 用于您的测试用例。您必须检查HTTP Status Code,然后检查任何特定属性或值的响应内容。

    【讨论】:

      【解决方案2】:

      如果您的 API 的数据层被充分抽象化,以便您可以针对给定的输入接收一致且可预测的输出,那么您的测试用例肯定应该包括一些针对某些有限输入列表的常见输出预期 他们还应该测试任何错误用例你可以鼓起来。

      如果您的 API 无法针对处于可预测状态的数据层运行(例如,如果它连接到实时数据,或者连接到开发人员之间共享的数据),那么您最终将花费大量是时候修复您的测试以正确建模数据的新状态了。这会降低单元测试的价值,因为您可能不会经常运行它们,而且您永远无法确定测试失败是由于数据更改还是程序逻辑更改造成的。这是否超过了不进行单元测试的风险取决于您的个人情况(测试中断的频率、服务的关键程度等等)。

      至于如何使用 PHPUnit 运行测试用例,我无法具体回答,但我想你会像 @basiljames 所说的那样做;针对给定端点执行调用并验证收到的响应是否与您的期望正确匹配。与任何其他单元测试没有什么不同,只是它们运行的​​速度可能会慢一些。

      【讨论】:

        猜你喜欢
        • 2014-12-31
        • 2021-04-04
        • 2012-07-16
        • 1970-01-01
        • 2017-09-25
        • 2019-12-23
        • 1970-01-01
        • 2018-05-24
        • 1970-01-01
        相关资源
        最近更新 更多