2008-10-17 12 views
15

एक दर्जन रेल प्लगइन्स हैं जिनका लक्ष्य परीक्षण में फिक्स्चर को प्रतिस्थापित करना है।रेल में पसंदीदा स्थिरता प्रतिस्थापन प्लगइन?

  • स्थिरता प्रतिस्थापन
  • कारखाने महिला
  • कारखानों और कार्यकर्ताओं
  • रेल परिदृश्यों
  • स्थिरता-परिदृश्यों
  • वस्तु पिताजी

: यहाँ कुछ मैं के बारे में सोच सकते हैं शायद अन्य लोग हैं। आप इनमें से किन प्लगइन पसंद करते हैं और क्यों?

उत्तर

6

मैं व्यक्तिगत रूप से कस्टम फैक्टरी वर्ग के साथ Faker का उपयोग करता हूं। यह मुझे मेरी कारखानों को बनाने की अनुमति देता है, और जेनरेट किए गए उदाहरणों को गैर स्थैतिक डेटा के साथ पॉप्युलेट करता है।

# spec/factory.rb 
module Factory 
    def self.create_offer(options={}) 
    Offer.create({ 
     :code => Faker::Lorem.words(1), 
     :expires_on => Time.now + (rand(30) + 1).day 
    }.merge(options)) 
    end 
end 


# spec_helper.rb 
require 'faker' 
require 'spec/factory' 


# In the specs 
@offer = Factory.create_offer(:code => 'TESTING') 
3

+1 कारखाने महिला

+0

"लड़की" के लिए मतदान किया – DFectuoso

3

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

4

मैं Fixture Replacement 2 के लिए वकालत करूंगा। आपका डिफ़ॉल्ट (परवाह नहीं है) मॉडल विशेषताओं को एक ही स्थान पर संग्रहीत किया जाता है, डीबी/example_data.rb, और त्वरित मान्य ऑब्जेक्ट प्रदान करते हैं। निर्माण पर निर्दिष्ट कोई भी विशेषता डिफ़ॉल्ट विशेषताओं को ओवरराइड करती है - जिसका अर्थ है कि देखभालपरीक्षण में और कुछ और नहीं है।

आपका उदाहरण डेटा अन्य डिफ़ॉल्ट मॉडल का भी संदर्भ दे सकता है, जो देरी वाले मूल्यांकन के साथ प्रो द्वारा प्रतिनिधित्व किए जाते हैं, ताकि आप वांछित होने पर आसानी से एसोसिएशन ओवरराइड कर सकें।

संस्करण 2 एक बहुत साफ परिभाषा प्रारूप प्रदान करता है, जबकि अभी भी प्रत्येक मॉडल के लिए जादू new_*, create_*, and default_* विधियां प्रदान करता है।

मैं किसी भी प्रकार की "परिदृश्य" योजना से बचूंगा जो बाद में पढ़ने के लिए कठिन और अधिक परीक्षण डेटा बनाने के लिए प्रोत्साहित करता है। आप FR2 के साथ नामित (कस्टम) ऑब्जेक्ट्स बना सकते हैं, लेकिन मुझे इसकी आवश्यकता कभी नहीं मिली है।

पीएस सुनिश्चित करें कि आप अपने इकाई परीक्षण रणनीति के साथ-साथ फिक्स्चर और उनके सभी अनुरूप वास्तविक ऑब्जेक्ट्स हैं जो डीबी को हिट करते हैं, जो कार्यात्मक या एकीकरण परीक्षण के लिए बनाते हैं। मैं वर्तमान में stub_model() के साथ आरएसपीसी के मॉकिंग का उपयोग कर रहा हूं और डीबी एक्सेस को अस्वीकार करने के लिए नवीनतम unit_record मणि का उपयोग कर रहा हूं।

3

मैं फ़ैकर का उपयोग रायन बेट्स द्वारा पॉप्युलेटर मणि के साथ करता हूं। उनके पास http://railscasts.com/episodes/126-populating-a-database पर एक अच्छा स्क्रीनकास्ट भी है।

2

मैं हाल ही में machinist के साथ खेल रहा हूं और इसे खोद रहा हूं।

3

मैं कारखाने का एक बड़ा प्रशंसक हूं जब आपको केवल एक या कुछ वस्तुओं की आवश्यकता होती है। आप या तो अपना खुद का लिख ​​सकते हैं या थॉटबॉट के Factory Girl का उपयोग कर सकते हैं।

ऐसी स्थितियों के लिए जहां आपको अंतःसंबंधित वस्तुओं के एक क्यूरेटेड सेट की आवश्यकता होती है, फिक्स्चर कारखाने को हराते हैं, और आपको उत्कृष्ट Lite Fixtures पर एक नज़र डालना चाहिए जो फिक्स्चर को और अधिक DRY और प्रबंधनीय बनाता है।

0

फैक्टरी गर्ल महान है। हम इसे काम के भार में उपयोग करते हैं।

Factory.define :usa, :class => Team do |f| 
    f.country_name 'USA' 
    f.rank   15.6 
end 

Factory.define :player do |f| 
    f.first_name 'Stevie' 
    f.last_name 'Wonder' 
    f.team  Factory.build(:usa) 
end 

फिर अपने चश्मा में आप Factory.build(:usa) या Factory.create(:usa) निर्माण या क्रमशः एक संयुक्त राज्य अमेरिका टीम बनाने के लिए उपयोग कर सकते हैं।

4

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

Factory.define :project_manager do |f| 
    f.first_name "John" 
    f.last_name "Doe" 
end 

Factory.define :project do |f| 
    f.name "Sample Project" 
    f.association :project_manager 
end 

इस तरह आपको वास्तव में प्रत्येक परीक्षण में संबंध स्थापित करने की चिंता करने की आवश्यकता नहीं है। यह फ़ेकर जैसे कुछ काम भी कर सकता है जहां आप कारखाने का उपयोग करके कारखानों में नमूना डेटा बना सकते हैं। परिणाम। फैक्टरी गर्ल पर सभी जानकारी के लिए, देखें: http://dev.thoughtbot.com/factory_girl/