我采用的应用程序具有一定的测试范围,但是大多数测试质量参差不齐。该应用程序的大部分都针对JSON API进行工作。我打算编写请求规范,但是先进行身份验证,然后再发送带有身份验证数据的POST并不是一件容易的事。对于测试JSON API, Controller 规范是否更合适?
例如,
match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' }
这似乎微不足道,但需要与capybara集成规范。此外, capybara 不会本地发送 session 数据,因此需要
page.driver.post .....
我得到了用于测试UI交互的集成测试,但是对于测试JSON API来说似乎是一个非常糟糕的模型。我想念什么吗?还是有进行集成/重新设置测试的教程?我现在正在讨论,他们几乎所有的测试都是 Controller ....如果集成/请求规范是屈指可数,为什么他们要做出决定?
提前
请您参考如下方法:
我将进行集成风格的测试,有点像this SO post。
通过JSON与API端点进行交互的级别高于 Controller ,因此我可能会使用RSpec提供的feature和scenario块描述符。 (例如here)。
从功能上讲,它与 Controller 规范没有太大不同,但是可以帮助您进行场景/功能类型的测试,而不是单元级别的测试。




