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.