2

有一个应用程序,我使用 Rolify 和 Pundit 进行授权,使用 Minitest/fixtures 进行测试。

当我使用固定装置将用户设置为管理员时,我没有得到断言的真实值。

/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

测试返回错误,我已经用符号尝试了管理员,但仍然得到同样的结果。

当该开发环境中的用户具有管理员时,当我询问角色是否为管理员时,我会得到真实的。

测试框架是minitest,我的用户模型是rolified

4

1 回答 1

1

好的,所以问题与正确设置 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
于 2014-10-16T14:48:33.583 回答