在RSpec中指定类型实际上有什么影响?

时间:2017-09-07 17:54:45

标签: ruby-on-rails ruby-on-rails-4 rspec rspec3

我从未确定这些选项之间的区别是什么

RSpec.describe V2::DirectMessagesController, type: :controller

VS

RSpec.describe V2::DirectMessagesController, type: :request

或者哪里可以找到它

1 个答案:

答案 0 :(得分:0)

请求规范为Rails'提供了一个薄的包装器。集成测试,旨在通过完整堆栈驱动行为,包括路由 (由Rails提供)并且没有存根(这取决于你)。

控制器规范是Rails功能测试的RSpec包装器 (ActionController::TestCase::Behavior)。 它允许您在每个示例中模拟单个http请求,然后 指定预期结果,例如:

  • 渲染模板
  • 重定向
  • 分配的实例变量 控制器与视图共享
  • 与...一起发回的cookie 响应

控制器规范文档:https://relishapp.com/rspec/rspec-rails/docs/controller-specs

请求规范文档:https://relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec