मैं दो कारणों के लिए सर्वोत्तम प्रथाओं अनदेखी कर रहा हूँ:
- मेरी परीक्षण का एक सेट प्रतिगमन परीक्षण कर रहे हैं, मैं उन्हें तेजी से चलाना चाहते हैं, और वे शायद ही कभी टूट गया। वास्तव में के बारे में स्पष्टता का लाभ बहुत बड़ा नहीं है, और मेरे कोड को रीफैक्टर करने की मंदी है ताकि यह एक ही घटना को कई बार मेरे लिए सामग्री चला सके।
- मैं कभी कभी एक सा आलसी हूँ, और यह आसान है कि refactor
तरह से मैं यह कर रहा हूँ (जब मैं ऐसा करने की आवश्यकता) ऐसा नहीं करने के लिए इस तथ्य पर भरोसा करने के लिए है कि मेरे डेटाबेस शुरू होता है खाली है, इसलिए मैं तो लिख सकते हैं:
foo.bar
expect(Counter.count).to eq(1)
expect(Anothercounter.count).to eq(1)
कुछ मामलों मेरी डेटाबेस खाली नहीं है में, लेकिन मैं या तो गिनती से पहले जानते हैं, या मैं स्पष्ट रूप से पहले के लिए परीक्षण कर सकते हैं गिनती:
counter_before = Counter.count
another_counter_before = Anothercounter.count
foo.bar
expect(Counter.count - counter_before).to eq(1)
expect(Anothercounter.count - another_counter_before).to eq(1)
अंतिम ly, अगर आप (मैं कभी कभी करते हैं) की जाँच करने के वस्तुओं की एक बहुत कुछ है आप यह कर सकते हैं के रूप में:
before_counts = {}
[Counter, Anothercounter].each do |classname|
before_counts[classname.name] = classname.count
end
foo.bar
[Counter, Anothercounter].each do |classname|
expect(classname.count - before_counts[classname.name]).to be > 0
end
आप समान की जरूरत है यह मेरे लिए काम करेंगे है, तो अपने ही सलाह के साथ ऐसा करना होगा अपने आंखें खुली - प्रस्तावित अन्य समाधान अधिक सुरुचिपूर्ण हैं लेकिन कुछ परिस्थितियों में बस कुछ डाउनसाइड्स हैं।
कभी-कभी यह बॉयलरप्लेट कोड के बहुत सारे होते हैं (जब किसी स्पेक को जटिल सेटअप की आवश्यकता होती है)। या शायद मैं इसे गलत कर रहा हूं :) –
आम तौर पर, अगर मैं बहुत सारे बॉयलरप्लेट कर रहा हूं, तो मैं अपने संदर्भ/विवरण ब्लॉक को परिष्कृत करने का प्रयास करता हूं ताकि मैं ब्लॉक से पहले सेटअप कर सकूं। वह आमतौर पर इसे साफ करता है। –
मॉडल/यूनिट परीक्षणों के लिए यह सब ठीक है, लेकिन फीचर/एकीकरण परीक्षणों के बारे में क्या है, जहां एक परीक्षण में कई दावे करना सामान्य बात है? – Arcolye