ruby-on-rails - 用于 Rails 应用程序的 Rolify fixtures 设置

标签 ruby-on-rails minitest rolify

有一个应用程序,我在其中使用 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/

相关文章:

ruby-on-rails - 从 Engine 类访问 url_helper

ruby-on-rails - Ruby on Rails、JSON 和 Highcharts

ruby-on-rails - ActionView::Template::Error(无法打开到本地主机的 TCP 连接:9292(连接被拒绝 - 连接(2)用于 "localhost"端口 9292))

ruby-on-rails - 带有设计和错误错误的Rails STI

ruby-on-rails - 滚动并获取对资源具有特定访问权限的用户列表

mysql 派生表、性能、替代方案

ruby-on-rails-3 - 如何在 VCR 中匹配动态变化的 URL

ruby - 如何在 minitest 中使用 "after_run"?

ruby - 使用 Ruby minitest 创建测试套件