如何测试带有参数的创建动作的康康舞能力?

发布于 2024-11-29 04:12:53 字数 713 浏览 1 评论 0原文

我的能力是这样的:

def initialize(user)
  partner_id ||= user.partner.id
  can :create, Employee, :partner_id => partner_id

这是在之前的块中:

before(:each) do
  @employee = Factory :employee, role: "manager"
  @partner = @employee.partner
  @some_other_partner = Factory :partner
  @subject = EmployeeAbility.new( @employee )
end

我的积极规范是这样的(这个通过了):

it { @subject.should be_able_to(:create, Employee, partner_id: @partner.id ) }

我的消极规范是这样的(这个失败了):

it { @subject.should_not be_able_to(:create, Employee, partner_id: @some_other_partner.id ) }

我应该如何以我可以测试的方式声明该能力创建的员工属于特定合作伙伴而不属于其他合作伙伴?

My ability is this one:

def initialize(user)
  partner_id ||= user.partner.id
  can :create, Employee, :partner_id => partner_id

This is in the before block:

before(:each) do
  @employee = Factory :employee, role: "manager"
  @partner = @employee.partner
  @some_other_partner = Factory :partner
  @subject = EmployeeAbility.new( @employee )
end

My positive spec is this (This one passes):

it { @subject.should be_able_to(:create, Employee, partner_id: @partner.id ) }

My negative spec would be this (This one fails):

it { @subject.should_not be_able_to(:create, Employee, partner_id: @some_other_partner.id ) }

How should I declare the ability in such a way that I can test that the created employee belongs to a particular partner and not to some other partner?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

平安喜乐 2024-12-06 04:12:53

您可以使用类的实例而不是类本身来检查能力:

can? :create, Employee.new(:partner_id => 3)

You can check an ability using an instance of a class rather than the class itself:

can? :create, Employee.new(:partner_id => 3)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文