Rails:切换到 puma 以获取请求规格

Rails: switch to puma for request specs

我们正在使用 RSpec 3.7 开发 rails 3.2 应用程序,并希望使用 puma 作为我们 rails 请求规范的 Web 服务器。

我们知道我们可以使用

为 Capybara 功能规格切换服务器
Capybara.register_server :puma

但是我们如何根据请求规范切换服务器?

背景:

我们想要规范并发问题并需要我们的测试服务器实际并行处理请求。

AFAIU (https://relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec) 请求规范未使用任何服务器。请求将直接通过 Rails 应用程序(中间件 -> 路由器 -> 控制器)。

所以...

Capybara 测试会使用无头浏览器发出请求,框架会为您启动实际的 Web 服务器(例如,puma)。

请求规范将绕过实际服务器,以便规范测试整个后端堆栈。

控制器规范甚至会避免路由,并且会使用准备好的请求对象调用控制器。

等等,一直到实际的单元测试...