2012-04-20 16 views
5

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

मैं पहले से ही मौजूदा परीक्षणों को तोड़ने के बिना एक परिवर्तन कैसे जोड़ सकता हूं? मैंने पहले से ही कैप्चर समूह में संदर्भ जोड़ा है, लेकिन चूंकि संदर्भ एक ही व्यवसाय डोमेन से पूर्व-मौजूदा परीक्षणों के रूप में है, यह आसानी से मिलान को समाप्त कर सकता है।

क्या कुछ चरणों में केवल एक परिवर्तन लागू करने का कोई तरीका है?

उत्तर

2

आप दुनिया में एक इंस्टेंस चर सेट करने के लिए एक टैग और पहले फ़िल्टर का उपयोग कर सकते हैं। यह तब आपके ट्रांसफॉर्म पर उपलब्ध है ताकि यह टैग-विशिष्ट परिवर्तनों को निष्पादित कर सके। उदाहरण के लिए, यदि आप केवल पूर्णांकों रूपांतरण करना चाहता था जब @hook टैग मौजूद है:

Transform /(\d+)/ do |num| 
    if @hook 
    num.to_i 
    else 
    num 
    end 
end 

Before('@hook') do 
    @hook = true 
end 

एक नई दुनिया प्रत्येक परिदृश्य के लिए बनाई गई है और इससे पहले कि फिल्टर कहा जाता है। तो प्रत्येक परिदृश्य के लिए @ हुक रीसेट हो जाएगा।

+0

दिलचस्प विचार, लेकिन अब फीचर फाइलों को ट्रांसफॉर्मेशन के बारे में पता होना चाहिए, जब यह वास्तव में चरण परिभाषा है जो –

+0

@ क्रिस है, मुझे लगता है कि मैंने आपके * वास्तविक * प्रश्न का उत्तर केवल कुछ निश्चित रूप से बदलने के बारे में नहीं दिया है कदम। आपने कहा था कि वे अतिरिक्त परीक्षण हैं, इसलिए मैंने सोचा कि वे नए परिदृश्य थे। – graza

+0

धन्यवाद, इस समय यह संभव है कि यह संभव हो! –

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