2009-09-07 16 views
6

परिदृश्य इस प्रकार है। मेरे ऑर्डर मॉडल में एक after_create है जो भुगतान URL पुनर्प्राप्त करने के लिए दूरस्थ भुगतान गेटवे से संपर्क करता है। मेरे ककड़ी परीक्षण में मैं यह क्रिया नहीं करना चाहता, लेकिन एक मनमानी यूआरएल वापस करूँगा। मेरे वर्तमान ककड़ी परीक्षण इस तरह दिखता है:ककड़ी परीक्षणों में एक मॉडल को मॉक/स्टब कैसे करें

को देखते हुए वहाँ एक उत्पाद "उत्पाद एक्स" है जब मैं अपनी उपलब्धियों को "आदेश अब" तो मैं पुनः निर्देशित किया जाना चाहिए प्रवेश और मैं क्लिक करें "मनमाना यूआरएल"

को समस्या यह है कि मैं कैसे सुनिश्चित करूं कि मेरा ऑर्डर मॉडल सही ढंग से यूआरएल सेट करता है और रिमोट पेमेंट गेटवे से संपर्क नहीं करता है?

उत्तर

3

विशेषताएं/समर्थन/env.rb में मैंने बंदर-मनमानी यूआरएल सेट करने के लिए अपने ऑर्डर मॉडल को पैच किया। यह मोचा या कुछ और के साथ भी किया जा सकता है, लेकिन इस मामले में कोई बात नहीं है।

Then /^I should be redirected to the payment gateway$/ do 
    response.status.should eql("302 Found") 
    response.location.should eql(Order.last.payment_url) 
end 

आशा इस रूप में अच्छी तरह से दूसरों के लिए मदद करता है:

मेरे चरणों में मैं इस तरह सही रीडायरेक्ट के लिए प्रतिक्रिया देख सकते हैं। मैं अभी भी जानना चाहता हूं कि इस लक्ष्य को प्राप्त करने का एक बेहतर/साफ तरीका है या नहीं।

1

यदि मैं समझता हूं कि आप सही तरीके से क्या करने की कोशिश कर रहे हैं, तो FakeWeb पर एक नज़र डालें।

11

विकी में कुछ tips on stubbing भी हैं।

+0

[अपडेट किया गया लिंक] (https://github.com/cucumber/cucumber/wiki/mocking-and-stubbing-with-cucumber) – Jared

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