2011-12-16 12 views
5

मेरे कुछ आरईपीसी परीक्षण वास्तव में वास्तव में बड़ी (2000-5000 लाइनें) प्राप्त हुए हैं। मैं तो बस यदि कोई कभी एक से अधिक फ़ाइलों कि निम्न शर्तों को पूरा में इन परीक्षणों को तोड़ने की कोशिश की है नीचे सोच रहा हूँ:अपने आरएसपीसी परीक्षणों को तोड़ना

  • नामकरण और अपने परीक्षण (जैसे तरीकों ए-एल user_spec1.rb को GOS) रखने का एक व्यवस्थित तरीका नहीं है।
  • आप एक ऐसी फ़ाइल चला सकते हैं जो वास्तव में अन्य फ़ाइलों के अंदर अन्य परीक्षण चलाएगी।
  • आप अभी भी एक फ़ाइल
  • के भीतर एक विशिष्ट संदर्भ चला सकते हैं और, अच्छा है, रूबीमाइन एक विशिष्ट परीक्षण (और सभी परीक्षण) को ठीक से चला सकता है।

अभी के लिए, मैं

#user_spec.rb 
require 'spec_helper' 
require File.expand_path("../user_spec1.rb", __FILE__) 
include UserSpec 

#user_spec1.rb 
module UserSpec do 
    describe User do 
    .. 
    end 
end 
+0

क्या आपने उन्हें टैगिंग माना है? –

+0

क्षमा करें, लेकिन मुझे यकीन नहीं है कि – denniss

+0

टैग करके आप क्या मतलब रखते हैं आप व्यक्तिगत चश्मा टैग कर सकते हैं और उन्हें एक साथ चला सकते हैं। –

उत्तर

6

कर अपने चश्मा बहुत बड़ा मिल रहे हैं में सफल रहे हैं, यह संभव है कि आपके मॉडल के रूप में अच्छी तरह से बहुत बड़ा है - जब से तुम "UserSpec" यहां इस्तेमाल किया, आप कह सकते हैं कि आपकी उपयोगकर्ता कक्षा "God class" है। यही है, यह बहुत ज्यादा करता है।

तो, मैं इसे बहुत छोटी कक्षाओं में तोड़ दूंगा, जिनमें से प्रत्येक की एक ही जिम्मेदारी होगी। फिर, इन वर्गों को अलगाव में जांचें।

आपको क्या मिल सकता है यह है कि आपकी उपयोगकर्ता कक्षा जानता है कि आपके सिस्टम में अधिकांश तर्क कैसे निष्पादित करें - यह एक आसान जाल है, लेकिन यदि आप अपना तर्क उस वर्ग में डालते हैं जो उपयोगकर्ता को लेता है एक तर्क ... यदि आप दृढ़ता से डेमेटर के कानून का पालन करते हैं (जहां आपका उपयोगकर्ता वर्ग केवल नीचे 1 स्तर स्पर्श कर सकता है, लेकिन दो नहीं)।

आगे पढ़ना: http://blog.rubybestpractices.com/posts/gregory/055-issue-23-solid-design.html

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