2008-09-21 7 views
33

मैं एक रेल ऐप स्थापित कर रहा हूं और मैंने अभी कुछ यूनिट परीक्षण किए हैं और मेरे दोस्त ने कहा है कि स्पष्ट रूप से जुड़नार अब शांत नहीं हैं और लोग अब आरएसपीसी या कंधे का उपयोग कर रहे हैं। मैं सोच रहा था कि इन अन्य टूलकिट का उपयोग करने के लिए वास्तविक लाभ क्या हैं। किसी भी जानकारी की सराहना की है। क्योंकि यह अब तक दोनों के लिए आसान पढ़ सकते हैं और में परीक्षण लिखने हैमुझे रेल के साथ आरएसपीसी या कंधे का उपयोग क्यों करना चाहिए?

-fREW

उत्तर

17

आरएसपीसी और इसी तरह के ढांचे व्यवहार संचालित विकास में सहायता के लिए डिज़ाइन किए गए टूलिंग हैं। वे परीक्षण लिखने के लिए सिर्फ एक सुंदर तरीका नहीं हैं, हालांकि वे इसके साथ मदद करते हैं।

वहाँ BDD यहाँ के बारे में जानकारी के बहुत सारे है: http://behaviour-driven.org/ और विकिपीडिया: http://en.wikipedia.org/wiki/Behavior_Driven_Development

यहाँ सूचीबद्ध करने के लिए भी बहुत से लाभ हैं, इसलिए मुझे लगता है कि साइट ब्राउज़ एक छोटे से सलाह देते हैं।

4

RSpec तरह से अधिक शक्तिशाली है। यह भी बहुत ही सुंदर जब मजाक उड़ाता है और स्टब्स का उपयोग कर, एक अवधारणा जो अत्यंत उपयोगी हो जाएगा है एक बार आप में उनका उपयोग शुरू आपके परीक्षण इसे एक साधारण परीक्षण ऐप (गैर रेल!) में आज़माएं और आप देखेंगे कि आपके चश्मे समकक्ष मानक परीक्षण के विरुद्ध कितने सुरुचिपूर्ण हैं।

22

मैं व्यक्तिगत रूप से आरएसपीसी को कंधे पसंद करता हूं। मुझे लगता है कि आरएसपीसी की तुलना में कंधे में कम जादू वाक्यविन्यास है। आरएसपीईसी के साथ मेरी समस्या यह है कि हाँ जब मैं इसे बड़े पैमाने पर पढ़ता हूं, लेकिन जब मैं इसे लिखता हूं, हम्मम्म, मुझे यकीन नहीं है कि कैसे एक दिया गया दावा लिखा जाना चाहिए। Prag Dave explains the problem better than me। वह likes Shoulda और कुछ उदाहरण हैं।

+1

मैं पूरी तरह webmat सहमत हैं। मैं वास्तव में आरएसपीईसी वाक्यविन्यास को समझने के साथ संघर्ष करता हूं क्योंकि इसमें बहुत सिंटेक्टिक चीनी है। यह साधारण वाक्यांशों को कोड में बदल देता है लेकिन फिर आप समझते हैं कि यह क्या करना है! वक्र खड़ा है और मैं आलसी हूँ। – srboisvert

+0

मैं भी शर्करा वाक्यविन्यास का थोड़ा संदिग्ध होता था, लेकिन http://rdoc.info/gems/rspec-expectations/2.4.0/RSpec/Matchers पढ़ने के बाद मुझे वास्तव में मेरे दावे लिखने में कोई परेशानी नहीं होती आरएसपीसी का वाक्यविन्यास। (शायद आपके उत्तर के बाद से 2.5y के भीतर प्रलेखन बेहतर हो गया है। ^^) असल में, अब मुझे टेस्ट :: यूनिट के दावे से काफी बेहतर आरएसपीसी की उम्मीद पसंद है (और यह अभी भी "अंग्रेजी पठनीयता" (गलत -) सुविधा)। –

7

दो विभिन्न यहाँ चीजें हैं:

पहली बात क्या ढांचे परीक्षण/चश्मा लिखने के लिए उपयोग करने के लिए है। यहां आप टेस्ट :: यूनिट, आरएसपीसी, कंधे आदि के बीच चयन कर सकते हैं। पसंद यह है कि क्या आप पारंपरिक टीडीडी (टेस्ट :: यूनिट) करना चाहते हैं या फिर आप David Chemlinsky (आरएसपीईसी और कुछ हद तक कंधे) जैसे डेवलपर्स द्वारा वकालत किए गए व्यवहार को निर्दिष्ट करने के वैकल्पिक तरीकों को पसंद करते हैं।

दूसरी बात यह है कि परीक्षण डेटा को कैसे संभालना है। the FixtureReplacement plugin जैसे अन्य लक्ष्यों के साथ डिगर्ज किए गए रेल फिक्स्चर और विकल्प हैं। रेल 2.0 फिक्स्चर में महत्वपूर्ण और अच्छी तरह से प्रलेखित प्रैक्टिकल समस्याएं थीं। रेल 2.0 में कई व्यावहारिक मुद्दों को ठीक किया गया था। हालांकि फिक्स्चर अनजान परीक्षण युग्मन का कारण बन सकता है और कुछ विकल्प इससे बचने की कोशिश करते हैं।

2

यदि आप एक बड़ा आवेदन बना रहे हैं और ऐसी कोई टीम नहीं है जो सभी डिकूप्लेड कोड लिखने में वास्तव में अच्छी है, जिसे ब्लैक बॉक्स परीक्षणों के साथ अच्छी तरह से परीक्षण किया जा सकता है और बहुत सारे मैक्स का उपयोग/डिबगिंग करने के लिए तैयार हैं & स्टब्स, फैक्टरी रोड नीचे मत जाओ।

जहां भी आप पढ़ते हैं कि कितने अद्भुत फैक्ट्री हैं, आप इस बारे में एक छोटी सी चेतावनी देखेंगे कि कैसे बड़े कारखाने में फैक्ट्रियां संभव नहीं हो सकती हैं क्योंकि वे फिक्स्चर से थोड़ा धीमी हैं।

लेकिन "थोड़ा धीमा" वाकई धीमी गति के आदेश है।

कारखानों के लिए लेबल का उपयोग करने वाले फिक्स्चर की तुलना में फैक्ट्री काफी महत्वपूर्ण नहीं हैं, जब तक कि आप फिक्स्चर को व्यवस्थित रखते हैं। और कुछ मामलों में कारखानों को डीबग करना कठिन होता है।

बस आज रात मैंने एक कारखाने को फिक्स्चर में परिवर्तित कर दिया, और परीक्षण फ़ाइल का रनटाइम 65 सेकंड से 15 सेकेंड तक चला, भले ही उस परीक्षण फ़ाइल में केवल 15% परीक्षण उस कारखाने का उपयोग करते हैं।

यदि आप न्यूनतम उपयोग करते हैं तो आप अपने परीक्षण यादृच्छिक क्रम में चला सकते हैं; यह परीक्षणों के बीच किसी भी डेटा युग्मन को जल्दी से प्रकट करेगा। (सुनिश्चित नहीं है कि आरएसपीईसी में टेस्ट ऑर्डर को यादृच्छिक करने का विकल्प है)

1

टेस्ट :: यूनिट छोटे अनुप्रयोगों के लिए अच्छा है। लेकिन कंधे या आरएसपीईसी जैसे परीक्षण ढांचे का उपयोग करने के लिए बहुत सारे फायदे हैं, ई। जी। संदर्भों !!

मुझे किसी भी या संबंध में कंधे और आरएसपीसी नहीं दिख रहा है। जब मैं एकल-दावा परीक्षण की बात करता हूं तो मैं आरएसपीसी के लिए एक विकल्प के रूप में कंधे का उपयोग करता हूं। मुझे वास्तव में कंधे एक-लाइनर पसंद है, लेकिन आरएसपीईसी में मैचर्स लिखना बहुत आसान है। तो मेरी सलाह है कि वे विभिन्न परीक्षण उपकरण का उपयोग करें जहां वे सर्वोत्तम फिट बैठते हैं।

0

आप .. ककड़ी जो RSpec से भी अधिक तेजी से होता है जैसे परीक्षण ढांचे का उपयोग कर सकते

संबंधित मुद्दे