rspec - “之后” - 如何从应该改变到期望语法?

时间:2013-10-27 12:32:10

标签: ruby rspec

如何在此代码中为should更改expectit: -

context 'class_name' do
  before do
    Fabricator(:some_company, :class_name => Company) do
      name 'Hashrocket'
    end
  end
  after { Fabrication.clear_definitions }
  its(:name) { should == 'Hashrocket' }
  it { should be_kind_of(Company) }
end

我可以看到its可能是:

 expect(name.to eq 'Hashrocket')

it { should be_kind_of(Company) }应该给予隐含的主题 会不会是

  expect(it).to be_kind_of(Company) 

我还没有从github设置项目(它很大)。

1 个答案:

答案 0 :(得分:1)

没有理由将短格式it块更改为expect语法。新语法的原因之一是避免将should添加到每个对象所需的monkeypatching。短格式it块已经避免了这个问题。

但是,如果您需要访问隐含主题,可以说

expect(subject).to be_kind_of(Company)

虽然我更愿意明确命名我的主题:

subject(:company) { Company.new }

it 'something' do
  expect(company).to be_kind_of(Company)
end