मैं एक वेब ऐप लिख रहा हूं जिसे एसएएस का उपयोग किया जाता है। प्रत्येक ग्राहक की अपनी डीबी और ऐप निर्देशिका होती है, इसलिए मेरे पास एक रेक कार्य है जो अपनी वेबसाइट चलाने के लिए सभी आवश्यक न्यूनतम डेटा (बीज डेटा) बनाता है: डिफ़ॉल्ट अधिकार और भूमिकाएं, एक सुपरडमिन उपयोगकर्ता, "us_states" तालिका पहले से ही आबादी वाली है, कुछ स्थानीय डिपो और टर्मिनलों (यह एक रसद ऐप है)।ककड़ी परीक्षणों में बीज डेटा
मेरे पास इसके लिए कोई ककड़ी परिदृश्य नहीं है और मैंने अभी कुछ बनाना शुरू कर दिया है। मैं ककड़ी के साथ एक शुरुआत कर रहा हूँ।
मैंने पहली बार उस बीज डेटा कार्य को एक दी गई रेखा में रखा है, लेकिन यह सभी परिदृश्यों के लिए बहुत कुछ दिया गया है, और यह परिदृश्यों को देखने वाले गैर-प्रोग्रामर को अधिक समझ नहीं आता है (मनुष्यों के लिए, यह ऐसा दिया गया है कि इसे जानबूझकर व्यक्त करने की आवश्यकता नहीं है) इसलिए मैंने इसे hooks.rb में स्थानांतरित कर दिया।
मेरी पहली परिदृश्य इस तरह दिखता है:
1 Feature: Place an order
2 In order to keep orders in the database
3 As a admin
4 I want to place orders
5
6 Scenario: Using common legs
7 Given I have 1 customers
8 And I'm on the homepage
9 And I follow "Place an Order"
10 When I select the customer
11 And I select the SSLine
12 And I click "Use Common Legs"
13 Then I should see "PICKUP AT"
14 And I should see "DELIVER TO" or "LOAD AT"
15 And I should see EMPTY RETURN
मेरे hooks.rb इस तरह दिखता है:
1 Before do
2 MinimumData.new('costi', '1234').populate #username and password
3 end
सवाल:
- मैं इस MinimumData चलाने के लिए नहीं करना चाहती। प्रत्येक परिदृश्य से पहले कार्य को पॉप्युलेट करें क्योंकि इसमें 8 सेकंड लगते हैं। क्या मुझे इसे वैश्विक स्तर पर एक बार चलाने चाहिए? कैसे?
- क्या मुझे डेटाबेस को After.do के साथ साफ करना है? मैं वास्तव में ऐसा नहीं करना चाहता, क्योंकि मैं After.do में तर्क को डुप्लिकेट करूँगा, केवल Model.delete_all स्टेटमेंट के साथ। मैंने देखा कि मेरे पहले भाग के बाद, परीक्षण डीबी में अभी भी वह डेटा है। मैं इसे रेक डीबी के साथ शुद्ध कर सकता हूं: परीक्षण: शुद्ध करें और इसे फिर से शुरू करें। क्या यह एक अच्छा अभ्यास है?
"से पहले क्या" writte होना चाहिए "ऐसा करने से पहले", एक अपरकेस चरित्र – 0x4a6f4672