itブロックとRSpecの指定ブロックの違い


83

itブロックとRSpecのspecifyブロックの違いは何ですか?

subject { MovieList.add_new(10) }

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

彼らは同じ仕事をしているようです。確認するだけです。

回答:


110

方法は同じです; これらは、テストの本体に基づいて、仕様を英語で読みやすくするために提供されています。次の2つを検討してください。

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

9
あなたは正しい、ブランドン、itそしてspecify同じ方法です。これらがソースのどこで定義さているかを確認できます。
ジョーダンランニング

1
素晴らしいキャッチ!あなたがソースを読むことから見つけることができる驚くべきもの。:)答えを更新します。
ミシェルティリー2011

2
2013年12月現在のメソッド名の例の要点は次のとおりです。gist.github.com / Dorian / 7893586(例、it、specify、focus、...)
Dorian

4
より良いRSpecの使用に対する助言should、および賛成のexpect
fotanus

4
@Jordanからの優れたリンクへの更新:github.com/rspec/rspec-core/blob/master/lib/rspec/core/…がそれを見つける場所になりました。
Florian Eck 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.