3

我正在学习 RSpec,但在理解共享主题以及它如何与新的期望语法一起使用时遇到了一些麻烦。

我遵循了cancan wiki 的教程,但我不知道如何测试用户何时不能使用相同的语法执行操作。

user_spec.rb:

require 'spec_helper'
require "cancan/matchers"

describe User do

  describe 'abilities' do
    let(:user) { FactoryGirl.create(:user) }
    let(:ability) { FactoryGirl.create(:user) }

    subject(:ability) { Ability.new(user) }

    it { should be_able_to :read, User.new }

    # clunky expectation 
    it 'should not be able to destroy others' do
      expect(ability).not_to  be_able_to(:destroy, User.new)
    end
  end
end

我想做的是写一个期望

it { should not be_able_to :delete, User.new }

我要解决这个问题了吗?

4

1 回答 1

6

您可以在缩短的版本中使用 should_not 语法:

it { should_not be_able_to :delete, User.new }

或者,使用 RSpec 3 的同义词:

it { is_expected.not_to be_able_to :delete, User.new }
于 2013-10-31T12:22:35.923 回答