1

所以我rails g scaffold bar content:string在 Rails 中,它会生成很多东西。作为测试的新手,我对每个类别的内容一无所知。

首先是一些上下文:

  • 测试框架是RSpec
  • 我正在使用设计进行身份验证和权威人士进行授权
  • bar资源只允许经过身份验证的用户访问
  • 每个用户只被授权 CRUD 他自己的酒吧资源

现在的问题(我知道这很多,对不起!):

  1. 如果我已经对我的权威策略进行了单元测试,我是否需要在我的控制器规范中测试授权?
  2. 我是否在控制器规格中测试身份验证?还是我应该把它留给要求规格?
  3. 是否需要分离视图测试?我不止一次被告知没有必要,我应该只使用功能规格。
  4. 关于请求规范,我是否需要测试所有 3 个场景,即未认证已认证但未授权每个操作已授权?
  5. 功能测试的范围是什么?我是否测试主要功能或每个角落案例?
4

1 回答 1

0

我建议在 Pundit 的操作方法之后使用 verify_authorized 和 verify_policy_scoped ...

class ApplicationController < ActionController::Base
  include Pundit
  after_action :verify_authorized
end

然后您的控制器测试可能会被实施以仅测试限制最少的用户(例如管理员)。

视图和功能测试的策略可能更复杂,因为您可能需要测试用户界面的功能,这些功能只能由具有特定权限的用户访问。但至少您在控制器规格上节省了一些时间!

于 2016-02-13T20:25:52.513 回答