Rspec期望分配速记

时间:2013-09-25 15:10:20

标签: ruby-on-rails ruby rspec ruby-on-rails-4

我目前有类似的东西:

it 'assigns @competition' do
  expect(assigns(:competition)).to be_a_new(Competition)
end

使用it { should ... }类型语法是否有更短的版本?

2 个答案:

答案 0 :(得分:3)

我不知道它更短,但你可以使用:

subject {assigns(:competition)}
it {should be_a_new(Competition)}

或者您可以使用:

it {expect(assigns(:competition)).to be_a_new(Competition)}

在这两种情况下,缩短都来自消除it的字符串参数,这与使用should无关。

答案 1 :(得分:1)

到目前为止,RSpec文档建议使用is_expected.to,如:

describe [1, 2, 3] do
  it { is_expected.to be_an Array }
  it { is_expected.not_to include 4 }
end

比照http://www.rubydoc.info/gems/rspec-core/RSpec/Core/MemoizedHelpers#is_expected-instance_method