मान लें कि आपके पास एक शॉपिंग साइट है जो विजेट बेचती है। हालांकि, प्रत्येक विजेट की सूची सीमित है, इसलिए "widget.number_still_available" संख्या को अद्यतित रखना महत्वपूर्ण है।rspec के साथ परीक्षण करते समय, सामान्य "परीक्षण उपयोगिता विधियों" को कहां रखा जाए?
मैं
it "always displays the correct number still available" do
# Assume there is a before method that sets up a widget with 5 available
widget.number_still_available.should == 5
# User "[email protected]" purchases 2 widgets
widget.number_still_available.should == 3
# User "[email protected].com" purchases 1 widget
widget.number_still_available.shhould == 2
# User "[email protected]" cancels purchase of 1 widget
widget.number_still_available.should == 4
end
की तर्ज मैं परीक्षण केवल-तरीकों कि "क्रय" और "रद्द" तरीकों करता है लिखने में सक्षम होना चाहते हैं के साथ एक rspec परीक्षण लिखने के लिए करना चाहते हैं। ये क्रियाएं विभिन्न मॉडलों के लिए मेरे मॉडल में किसी भी "असली" विधियों के अनुरूप नहीं हैं (सबसे महत्वपूर्ण रूप से PHP में एक decoupled बैक-एंड सिस्टम है जो क्रय और रद्द करने के कार्यों का हिस्सा करती है)।
आरएसपीईसी का उपयोग करते समय इस कोड को रखने के लिए सही जगह कहां है? ककड़ी में, मैं कुछ कदम लिख सकता था - लेकिन मुझे यकीन नहीं है कि आरएसपीईसी के लिए सही समतुल्य क्या है।
ध्यान दें कि यह उसी फ़ाइल में बंदर पैच मॉडल कक्षाओं पर भी काम करता है। इसलिए, यदि आपने उपयोगकर्ता पर एक test-only विधि होने के लिए 'buy_widgets' को प्राथमिकता दी है, तो आप इस फ़ाइल में उपयोगकर्ता क्लास खोल सकते हैं और इसे जोड़ सकते हैं। इसके अलावा, अतिरिक्त सुविधा के लिए, यदि आप स्पार्क के साथ परीक्षण कर रहे हैं, तो आप spec_helper.rb में 'Spork.each_run' ब्लॉक के अंदर 'लोड" # {Rails.root} /spec/support/purchase_helpers.rb "' जोड़ना चाहेंगे। – cailinanne
वह अंतिम बिट केवल तभी जरूरी है जब आप सभी चश्मा के नामस्थान में 'खरीद हेल्पर' विधियां शामिल करना चाहते हैं। यदि आप केवल तभी ऐसा करना चाहते हैं जब आप आवश्यक हों, तो आप अपने 'वर्णन' ब्लॉक में 'खरीद हेल्पर' शामिल कर सकते हैं। –