2012-05-05 10 views
17

मैं MiniTest 2.12.1 (रूबी> = 1.9 के साथ भेजे गए स्टॉक परीक्षण ढांचे का नवीनतम संस्करण) का उपयोग कर रहा हूं और मैं यह नहीं समझ सकता कि क्लास विधि के साथ कैसे नकल करना है, वैसे ही यह पसंद है Mocha, उदाहरण के लिए:रूबी: मिनीटेस्ट के साथ क्लास विधि का मज़ाक उड़ा रहा है?

product = Product.new 
Product.expects(:find).with(1).returns(product) 
assert_equal product, Product.find(1) 

मैं दिनों के लिए इंटरनेट dabbling किया गया है और मैं अभी भी कर रहा हूँ यह करने के लिए एक उचित जवाब खोजने के लिए। कृपया सहायता कीजिए?

+0

मुझे लगता है कि 'minitest/mock', [? दोहराया] के साथ _mocking_ इस तरह का बनाने के लिए संभव नहीं है (http://stackoverflow.com/questions/7211086/how-do-i-stub-things-in-minitest) – fguillen

उत्तर

17

यदि आप 2.12.1 का उपयोग कर फंस गए हैं तो यह आपके लिए सहायक नहीं हो सकता है, लेकिन ऐसा लगता है कि उन्होंने HEAD here में न्यूनतम/नकली करने के लिए विधि जोड़ा।

तो, आप minitest सिर के अद्यतन करने के लिए थे, मुझे लगता है कि आप ऐसा कर सकता है:

product = Product.new 
Product.stub(:find, product) do 
    assert_equal product, Product.find(1) 
end 
+0

आप कम से कम HEAD को कैसे अपडेट करते हैं? (धन्यवाद!) – mpelzsherman

+0

ऐसा लगता है कि मैंने इसे एक नया संस्करण टैग किया है क्योंकि मैंने इसे लिखा है, इसलिए HEAD को अपडेट करने की आवश्यकता नहीं है। सबसे हालिया संस्करण अब 3.5.0 पर है। यदि आप बंडलर का उपयोग कर रहे हैं, तो आप यह सुनिश्चित कर सकते हैं कि आपके जेमफाइल में इस तरह की एक पंक्ति है: 'gem' minitest ',' 3.5.0''। यदि आप हेड संस्करण से काम करना चाहते हैं, तो आपके पास यह आपके जेमफाइल में होगा: 'मणि' मिनीटेस्ट ',: git =>' git: // github.com/seattlerb/minitest.git''। यदि आप बंडलर का उपयोग नहीं कर रहे हैं, तो मुझे लगता है कि 'मणि अपडेट मिनीटेस्ट' को यह करना चाहिए। – Adam

+0

बस स्पष्ट करने के लिए: यह प्रश्न में मोचा समाधान के बराबर नहीं है: '.find' कॉल के पैरामीटर इस समाधान के साथ सत्यापित नहीं हैं ... – severin

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

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