रीसायकल ने इसी परिदृश्य में वीसीआर कैसेट रिकॉर्ड किए हैं या किसी परिदृश्य के लिए विशिष्ट कैसेट का उपयोग करने के लिए वीसीआर बताएं - रूबी, ककड़ी, वीसीआर

मुझे एक exsiting ककड़ी सुविधा का विस्तार करना हैकुछ नए परिदृश्यों को कवर करने वाले कुछ नए परिदृश्यों के साथ। फिलहाल इस पूरे ककड़ी / वीसीआर चीज को इस तरह स्थापित किया गया है कि यह मिलान परिदृश्य नाम के साथ कैसेटों की तलाश करेगा:

feature bar

@vcr
scenario foo

एक रिकार्ड कैसेट की तलाश करेंगे ./cassettes/bar/foo.yml। लेकिन आगे के परिदृश्य हैं जो कर सकते हैंरिकॉर्ड किए गए कैसेट से पहले रीसायकल करें। (मेरे पक्ष से भी जोड़ने के लिए)। तो प्रत्येक परिदृश्य के लिए एक ही कैसेट के साथ एक फ़ोल्डर फूला हुआ है लेकिन केवल इसका नाम बदला गया है:

feature bar

@vcr
scenario foo

@vcr
scenario foo1

...

@vcr
scenario fooX

तो थे ./cassettes/bar/foo.yml, ./cassettes/bar/foo1.yml ... ./cassettes/bar/fooX.yml सटीक उसी सामग्री के साथ। यह सूखा पाने का सही तरीका क्या है?

स्पष्ट रूप से उपयोग करने के लिए वीसीआर कैसेट निर्दिष्ट करने की कोई संभावना है, जैसे कुछ?

  @vcr(:cassette => foo)
scenario fooX

बहुत धन्यवाद ;)

उत्तर:

जवाब के लिए 0 № 1

मैंने वीसीआर के लिए एक नया टैग परिभाषित करके इस मुद्दे को हल किया:

#./test_helper/vcr.rb
VCR.cucumber_tags do |t|
t.tag "@vcr", use_scenario_name: true
t.tag "@foo"
end

और फिर मैंने हुक के पहले और बाद में जोड़ा, जो मेरा वांछित कैसेट लोड करता है:

# ./features/support/env.rb
Before("@foo") do
VCR.insert_cassette("cassettes/bar/foo")
end

After("@foo") do
VCR.eject_cassette
end

तो अब मुझे इसी तरह के परिदृश्यों के लिए अपने नए परिभाषित टैग को एनोटेट करने की आवश्यकता है:

feature bar

@foo
scenario foo

@foo
scenario foo1

...

@foo
scenario fooX

तो अब मेरे पास केवल एक दर्ज की गई कैसेट फ़ाइल है।


सबसे लोकप्रिय