rspec集成/请求规范与控制器规范,重点是JSON api

rspec集成/请求规范与控制器规范,重点是JSON api,rspec,Rspec,我采用了一个应用程序,它有一些测试覆盖范围,但大多数测试质量参差不齐。该应用程序的大部分都使用JSON api。我本来打算写请求规范,但验证并发送带有验证数据的帖子并不是件小事。对于测试JSON api,控制器规范是否更合适 比如说, match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' } 这看起来很简单,但需要一个与

我采用了一个应用程序,它有一些测试覆盖范围,但大多数测试质量参差不齐。该应用程序的大部分都使用JSON api。我本来打算写请求规范,但验证并发送带有验证数据的帖子并不是件小事。对于测试JSON api,控制器规范是否更合适

比如说,

 match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' }
这看起来很简单,但需要一个与capybara的集成规范。此外,水豚不会以本机方式发送会话数据,因此需要

page.driver.post .....
我得到了测试UI交互的集成测试,但它似乎是测试JSON api的一个非常糟糕的模型。我错过什么了吗?或者是否有进行集成/重新设置测试的教程?我现在正在看对话,几乎所有的测试都是控制器。。。。如果集成/请求规范是最重要的,为什么他们会做出这样的决定


thx预先

我会做集成风格的测试,有点像

通过JSON与API端点交互的级别高于控制器,因此我可能会使用RSpec提供的
功能
场景
块描述符。(示例)

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

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