我正在使用cancan gem。
我有能力在班上定义:
RSpec.describe "Permissions to delete user", :type => :request do
describe 'del user' do
it 'superadmin can delete user' do
superadmin = double(User, :id => 10, <<some other fields>>)
ability = Mymodule::Myability.new(superadmin)
victim = double(User)
res = superadmin_ability.can?(:user_del, victim)
expect(res).to eq true
end
end
end
我正在测试使用RSpec删除用户的能力:
class User < ActiveRecord::Base
delegate :can?, :cannot?, :to => :ability
...
end
我的用户模型:
can? :delete_user, User
但它没有从我的能力中看到方法KeyCode
。
它期望User类,但RSpec使用RSpec :: Mocks :: Double类调用它。
如何使用Rspec嘲讽从cancan gem正确测试能力?
答案 0 :(得分:0)
RSpec正在使用Double类,因为它在代码中结束。对于RSpec,类必须为let(:user) do
u = User.new
u.stub!(:some_qualifier_in_your_delete_user_declaration? => true)
u
end
才能应用规则。
{{1}}