RSpec में इट ब्लॉक और निर्दिष्ट ब्लॉक के बीच अंतर


83

RSpec में इट ब्लॉक और निर्दिष्ट ब्लॉक में क्या अंतर है?

subject { MovieList.add_new(10) }

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

वे एक ही काम करने लगते हैं। बस जाँच सुनिश्चित करने के लिए।

जवाबों:


111

विधियां समान हैं ; वे आपके परीक्षण के शरीर के आधार पर अंग्रेजी अच्छे में पढ़ा जाने वाला चश्मा बनाने के लिए प्रदान किए जाते हैं। इन दोनों पर विचार करें:

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
बेहतरीन कैच! अद्भुत जो आप स्रोत पढ़ने से पा सकते हैं। :) मैं जवाब अपडेट करूंगा।
मिशेल टिले

2
यहाँ 2013 के रूप में उदाहरण के तरीकों के नाम के साथ एक जिस्ट है : gist.github.com/Dorian/7893586 (उदाहरण के लिए, यह, निर्दिष्ट करें, फ़ोकस करें, ...)
डोरियन

4
के उपयोग के खिलाफ बेहतर rspec सलाह should, और के पक्ष मेंexpect
fotanus

4
@ जोर्डन से उत्कृष्ट लिंक पर अपडेट करें: github.com/rspec/rspec-core/blob/master/lib/rspec/core/… अब वह स्थान है जहां इसे ढूंढना है।
फ्लोरियन एक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.