मैं पाइथन के साथ mock का उपयोग कर रहा हूं और सोच रहा था कि उन दो दृष्टिकोणों में से कौन सा बेहतर है (पढ़ें: अधिक पायथनिक)।कक्षा का मज़ाक उड़ाते हुए: मॉक() या पैच()?
विधि एक: बस एक नकली वस्तु बनाएं और इसका उपयोग करें। कोड लगता है:
def test_one (self):
mock = Mock()
mock.method.return_value = True
self.sut.something(mock) # This should called mock.method and checks the result.
self.assertTrue(mock.method.called)
विधि दो: उपयोग पैच एक नकली बनाने के लिए। कोड इस तरह दिखता है:
@patch("MyClass")
def test_two (self, mock):
instance = mock.return_value
instance.method.return_value = True
self.sut.something(instance) # This should called mock.method and checks the result.
self.assertTrue(instance.method.called)
दोनों विधियां एक ही काम करती हैं। मैं मतभेदों से अनिश्चित हूं।
क्या कोई मुझे प्रबुद्ध कर सकता है?
एक व्यक्ति जो करने की कोशिश की कभी नहीं किया है या तो नकली() या पैच के रूप में, मुझे लगता है कि पहले संस्करण स्पष्ट है कि और पता चलता है कि आप क्या करना चाहते हैं, भले ही मैं की कोई समझ नहीं है वास्तविक अंतर मुझे नहीं पता कि यह किसी भी मदद की है या नहीं, लेकिन मैंने सोचा कि यह समझने में उपयोगी हो सकता है कि एक अनियमित प्रोग्रामर क्या महसूस कर सकता है। –
@ माइकलब्रेनन: आपकी टिप्पणी के लिए धन्यवाद। यह वास्तव में उपयोगी है। – Sardathrion