【问题标题】:rspec integration / request specs vs controller specs with an emphasis on JSON apirspec 集成/请求规范与控制器规范,重点是 JSON api
【发布时间】:2013-04-18 06:06:23
【问题描述】:

我采用的应用具有一定的测试覆盖率,但大多数测试质量参差不齐。该应用程序的大部分都针对 JSON api 工作。我打算编写请求规范,但进行身份验证然后发送带有身份验证数据的 POST 并非易事。对于测试 JSON api,控制器规格是否更合适?

例如,

 match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' }

这似乎是微不足道的,但需要与水豚的集成规范。此外,capybara 本身不会发送会话数据,因此需要

page.driver.post .....

我获得了用于测试 UI 交互的集成测试,但对于测试 JSON api,它似乎是一个非常糟糕的模型。我错过了什么吗?或者有没有做集成/请求测试的教程?我现在正在查看话语,几乎所有他们的测试都是控制器....如果集成/请求规范是蜜蜂的膝盖,他们为什么要做出这个决定?

提前谢谢

【问题讨论】:

  • 回复:您的第一个问题,“对于测试 JSON api,控制器规格是否更合适?”这取决于你在测试什么?您是在对控制器功能(返回的 HTTP 状态、重定向、model.count 更改)、JSON 内容还是身份验证/授权等跨用途的东西进行单元测试?

标签: rspec


【解决方案1】:

我会做集成式测试,有点像this SO post。

通过 JSON 与 API 端点交互比控制器更高级别,所以我可能会使用 RSpec 提供的 feature 和 scenario 块描述符。 (例如here)。

从功能上讲,它与控制器规范没有太大区别,但有助于推动您进行场景/功能类型的测试,而不是单元级测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2020-08-03
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多