2013-03-02 10 views
98

रुपेक के feature specs और request specs के बीच वैचारिक अंतर क्या है?आरएसपीसी: फीचर और अनुरोध स्पेक के बीच क्या अंतर है?

सुविधा कल्पना डॉक्स से

:

फ़ीचर चश्मा एक आवेदन के माध्यम से कार्यक्षमता की स्लाइस व्यायाम का मतलब उच्च स्तरीय परीक्षण कर रहे हैं। उन्हें केवल बाहरी इंटरफ़ेस, आमतौर पर वेब पेजों के माध्यम से एप्लिकेशन को ड्राइव करना चाहिए।

और अनुरोध चश्मा के लिए:

अनुरोध चश्मा रेल 'एकीकरण परीक्षणों चारों ओर एक पतली आवरण प्रदान करते हैं और , पूर्ण ढेर के माध्यम से व्यवहार ड्राइव करने के लिए तैयार कर रहे हैं (रेल द्वारा प्रदान की) मार्ग सहित और बिना छेड़छाड़ (यह आप पर निर्भर है)। अनुरोध चश्मा के साथ, आप कर सकते हैं:

  • एक ही अनुरोध निर्दिष्ट
  • एकाधिक नियंत्रकों भर में एक से अधिक अनुरोध निर्दिष्ट
  • अनेक सत्रों में एक से अधिक अनुरोध निर्दिष्ट

मुझे पता है कि सुविधा चश्मा का उपयोग Capybara और अनुरोध चश्मा नहीं है। लेकिन यह शायद ही कभी अलग अवधारणाओं की योग्यता है।

उत्तर

134

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

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

मैं github पर rspec-rails स्रोत कोड में feature_spec.feature पढ़ने की अनुशंसा करता हूं। आशा है कि ये आपकी मदद करेगा।

+2

तो क्या आप दोनों फीचर का उपयोग करने और चश्मे का अनुरोध करने की सलाह देंगे, या एक या दूसरा पर्याप्त है? (टीडीडी के लिए नया होना ...) – robertwbradford

+2

मैं दोनों @robertwbradford का उपयोग करता हूं। मैं अपने बाहरी परीक्षणों को चलाने के लिए फीचर चश्मा का उपयोग करता हूं - उपयोगकर्ता अनुभव का परीक्षण करता हूं और फिर इकाई परीक्षणों का उपयोग करके कार्यक्षमता का निर्माण करता हूं। मैं परीक्षण प्रतिक्रियाओं के लिए अनुरोध चश्मे का उपयोग करता हूं - उदा। सत्र_एसपीसी में मेरे पास 'अपेक्षित (प्रतिक्रिया' स्थिति) की उम्मीदों के साथ 'जीईटी/लॉगिन' 'ब्लॉक का वर्णन हो सकता है जैसे कि' उम्मीद (200) 'और' उम्मीद (प्रतिक्रिया)। render_template (: नया) ', या 'वर्णन' पोस्ट/सत्र" ', 'प्रमाण पत्र' के साथ वैध प्रमाण-पत्र '' ब्लॉक', 'उम्मीद (प्रतिक्रिया) के साथ। redirect_to (उपयोगकर्ता)' और 'follow_redirect! उम्मीद करें (प्रतिक्रिया। कोई)। ("साइन इन") शामिल करने के लिए ' –

+5

और क्या आप नियंत्रक चश्मा भी उपयोग करते हैं? ऐसा लगता है कि आप अनुरोध चश्मे में जो परीक्षण करते हैं और आमतौर पर नियंत्रक चश्मे में परीक्षण किया जाता है, उसके बीच कुछ डुप्लिकेशंस होता है। – Ernesto

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