RSpec中的it块和指定块有什么区别?
subject { MovieList.add_new(10) }
specify { subject.should have(10).items }
it { subject.track_number.should == 10}
他们似乎做同样的工作。只是检查以确保。
Answers:
方法是一样的; 提供它们是为了使规格更好地根据您的测试内容以英语阅读。考虑以下两个:
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
it
并且specify
是相同的方法。您可以在源代码中看到它们的定义位置。