有一个应用程序,我在其中使用 Rolify 和 Pundit 进行授权,并使用 Minitest/fixtures 进行测试。
当我使用 fixtures 将用户设置为管理员时,我没有为断言返回 true。
/fixtures/users.yml
administrator:
email: admin@example.com
roles: admin
/fixtures/roles.yml
admin:
id: 1
name: admin
test.rb
it "is administrator" do
User.first.has_role?('admin').must_equal true
end
测试返回错误,我用符号尝试了管理员,但仍然得到同样的结果。
当该开发环境中的用户拥有管理员权限时,当我询问该角色是否为管理员时,我得到 true。
测试框架是 minitest,我的用户模型是 rolified
最佳答案
好的,所以问题与正确设置 roles.yml 有关。我在上面使用 id:,如果你只使用 users: 就可以了
/fixtures/users.yml
administrator:
email: admin@example.com
roles: admin
/fixtures/roles.yml
admin:
users: administrator
name: admin
test.rb
it "is administrator" do
User.first.has_role?('admin').must_equal true
end
关于ruby-on-rails - 用于 Rails 应用程序的 Rolify fixtures 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252840/