2012-04-02 16 views
5

पिछले कुछ दिनों में मैं धीमी प्रगति कर रहा हूं जो मौजूदा रेल ऐप में परीक्षण जोड़ रहा है, मैं थोड़ी देर के लिए काम कर रहा हूं।मुझे अपने रेल ऐप का परीक्षण कैसे करना चाहिए?

मैं बस यह पता लगाने की कोशिश कर रहा हूं कि मुझे कितना परीक्षण और इकाई (कार्यात्मक, एकीकरण) समय डिबगिंग और मौजूदा कार्यक्षमता को तोड़ने वाले तैनाती को ठीक करने के लिए पर्याप्त होगा।

मैं इस एप्लिकेशन पर काम करने वाला अकेला हूं। यह मूल रूप से एक छोटी कंपनी (~ 20 कर्मचारियों) के लिए एक सूची प्रबंधन डेटाबेस है। मैंने शुरुआत से परीक्षण नहीं जोड़ा क्योंकि मुझे वास्तव में बिंदु नहीं दिखाई दे रहा था, लेकिन मेरे पास कुछ छोटे तैनाती हैं जो पिछले कुछ बिट में मौजूदा कार्यक्षमता को खराब कर चुके हैं, इसलिए मैंने सोचा कि यह जोड़ने के लिए एक अच्छी बात हो सकती है।

क्या मुझे अपने मॉडल और नियंत्रकों को अलग-अलग परीक्षण करने और एकीकरण परीक्षण करने की आवश्यकता है? ऐसे डेवलपर्स प्रतीत होते हैं जो मानते हैं कि अगर आपको वहां से कोई त्रुटि मिलती है तो क्या गलत है यह जानने के लिए आपको केवल एकीकरण परीक्षण और बैकट्रैक होना चाहिए।

अब तक मैं आरएसपीसी + फैक्टरी गर्ल + कंधे का उपयोग कर रहा हूं। इसने मॉडल के लिए परीक्षण स्थापित करना बहुत आसान बना दिया।

मैं अब नियंत्रकों से शुरू कर रहा हूं और थोड़ा सा खो गया हूं। मुझे पता है कि एक व्यक्तिगत नियंत्रक का परीक्षण कैसे करें, लेकिन मुझे नहीं पता कि मुझे केवल एकीकरण परीक्षण का उपयोग करके अनुप्रयोग प्रवाह का परीक्षण करना चाहिए क्योंकि यह एक ही समय में नियंत्रकों का परीक्षण करेगा।

+0

प्रकाश पक्ष में आपका स्वागत है :) –

उत्तर

1

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

एकीकरण परीक्षण के लिए मुझे कैपिरा का उपयोग करना आसान लगता है।

3

मैं सफल पथों और सामान्य विफलता पथों का परीक्षण करने के लिए एकीकरण परीक्षण का उपयोग करता हूं, लेकिन किनारे के मामलों या अधिक गहन परिदृश्यों के लिए मैं मॉडल/व्यू/नियंत्रक परीक्षण लिखता हूं।

मैं आमतौर पर एप्लिकेशन में कार्यक्षमता लिखने से पहले परीक्षण लिखता हूं लेकिन यदि आप बाद में परीक्षण जोड़ना चाहते हैं तो मैं SimpleCov जैसे कुछ उपयोग करने की सलाह देता हूं ताकि आपके एप्लिकेशन के किन क्षेत्रों को अधिक परीक्षण की आवश्यकता हो और धीरे-धीरे आपके लिए परीक्षण कवरेज तैयार हो आवेदन।

+0

+1 कवरेज का उल्लेख करने के लिए। –

0

अंगूठे के नियम के रूप में, आपके अधिकांश परीक्षणों में यूनिट, कुछ कार्यात्मक, कुछ एकीकरण होना आवश्यक है।

रेल इस पूरे दिल से पालन करते हैं और आपको वही करना चाहिए।

  • अपने मॉडल से प्रत्येक के लिए एक इकाई परीक्षण, एक परीक्षण मामला अपने सत्यापन से प्रत्येक के लिए उनमें से प्रत्येक में जोड़ने के लिए, और अंत में करने के लिए एक पिछले एक:

    कम से कम आपके पास करने के लिए है सुनिश्चित करें कि मॉडल बचाया गया है। यदि आपके पास संबंधित मॉडल (has_many, belongs_to) पर dependant: :destroy, touch: true जैसी सामग्री है, तो उनके लिए परीक्षण केस भी जोड़ें।

  • आपके प्रत्येक नियंत्रक के लिए कार्यात्मक परीक्षण। प्रत्येक कार्रवाई के लिए टेस्ट केस। कुछ कार्यों में कई प्रतिक्रियाएं हो सकती हैं (जैसे 422 त्रुटियों के मामले में) तो त्रुटि प्रतिक्रिया का परीक्षण करने के लिए एक और केस जोड़ें। यदि आपके पास प्राधिकरण फ़िल्टर है, तो उन्हें भी जांचें।

फिर आप एक विशिष्ट नए उपयोगकर्ता प्रवाह के लिए एकीकरण परीक्षण कर सकते हैं। साइन अप करें -> पोस्ट बनाएं -> इसे देखें -> लॉगआउट। एक और यह सुनिश्चित करना है कि अनधिकृत उपयोगकर्ता आपके संसाधनों तक नहीं पहुंच सकें।

और अब से, ऊपर दिए गए परीक्षणों के बिना कोई कोड न करें।

एक पेड़ लगाने का सबसे अच्छा समय 10 साल पहले था, दूसरा सबसे अच्छा समय अब ​​ है, इसलिए परीक्षण शुरू करें!

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