在RSpec中使用expect和should

mal*_*uri 5 ruby rspec ruby-on-rails

有以下RSpec代码:

it 'is not valid if name is not present' do
    @car.name = nil
    expect(@car).to be_invalid
end
Run Code Online (Sandbox Code Playgroud)

我现在读了Aaron Sumner的"用RSpec测试",他在RSpec中写了新的风格.之前我写过以下代码:

it 'is not valid if name is not present' do
    @car.name = nil
    it { should_not be_valid }
end
Run Code Online (Sandbox Code Playgroud)

请告诉我,对吗?谢谢.

Raf*_*aez 12

我认为这是一个很好的例子

describe "Car"
  describe '#valid?' do
    context 'when its name is nil' do
      let(:car) { FactoryGirl.create(:car, :name => nil) }

      it 'is not valid' do 
        expect(car).to_not be_valid
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

在此处查找有关更好规格的更多信息