RSpec中的it块和指定块之间的差异

时间:2011-12-13 03:55:38

标签: ruby-on-rails ruby rspec

它在RSpec中的块和指定块之间有什么区别?

subject { MovieList.add_new(10) }

specify { subject.should have(10).items }
it { subject.track_number.should == 10}

他们似乎做同样的工作。只是检查确定。

1 个答案:

答案 0 :(得分:102)

方法是the same;提供它们是为了根据您的测试主体使用英语更好地阅读规范。考虑这两个:

describe Array do
  describe "with 3 items" do
    before { @arr = [1, 2, 3] }

    specify { @arr.should_not be_empty }
    specify { @arr.count.should eq(3) }
  end
end

describe Array do
  describe "with 3 items" do
    subject { [1, 2, 3] }

    it { should_not be_empty }
    its(:count) { should eq(3) }
  end
end