我对卡片有这个策略,只是我使用范围,它非常简单,但是一旦我尝试用rspec进行测试,我就会收到错误,我正在粘贴我的代码,下面是错误:
这是测试,我正在创建用户、卡片和范围,我不知道如何解决,对我来说一切都好,请用错误来帮助实现。
require 'rails_helper'
RSpec.describe CardPolicy, type: :policy do
let(:card) { FactoryBot.build_stubbed :card }
let(:scope) { Pundit.policy_scope(user, Card.all) }
describe "Scope" do
context 'admin user' do
let(:user) { User.new(role: 'admin') }
it 'allows access to all the reports' do
expect(scope).to match_array([card])
end
end
end
end这是一个错误:
失败/错误:包含的实际集合:[]
我认为这是错误,因为范围是空的:
let(:scope) { Pundit.policy_scope(user, Card.all) }发布于 2022-10-19 20:43:14
在Pundit.policy_scope(user, card)中,您将一个卡片的实例传递给policy_scope,该实例不太可能响应all
尝试使用多个卡片/项目(例如,类似于Card.all的东西)。
https://stackoverflow.com/questions/74131422
复制相似问题