मैं इस परिदृश्य है: मेरे models.pyमजाक Django मॉडल और बचाने()
class FooBar(models.Model):
description = models.CharField(max_length=20)
मेरी utils.py फ़ाइल में
में
।
from models import FooBar
def save_foobar(value):
'''acts like a helper method that does a bunch of stuff, but creates a
FooBar object and saves it'''
f = FooBar(description=value)
f.save()
tests.py
from utils import save_foobar
@patch('utils.FooBar')
def test_save_foobar(self, mock_foobar_class):
save_mock = Mock(return_value=None)
mock_foobar_class.save = save_mock
save_foobar('some value')
#make sure class was created
self.assertEqual(mock_foobar_class.call_count, 1) #this passes!!!
#now make sure save was called once
self.assertEqual(save_mock.call_count, 1) #this fails with 0 != 1 !!!
यह वह जगह है कि मुझे क्या करना कोशिश कर रहा हूँ की एक सरलीकृत संस्करण ... तो क्यों मैं एक utils फ़ाइल है पर hungup नहीं मिलता है तो कृपया और एक में
इसके लिए सहायक कार्य (वास्तविक जीवन में यह कई चीजें करता है)। साथ ही, कृपया ध्यान दें, सरलीकृत होने पर, यह मेरी समस्या का वास्तविक कार्य उदाहरण है। Call_count का परीक्षण करने वाला पहला कॉल 1 और पास देता है। हालांकि, दूसरा एक 0 देता है। तो, ऐसा लगता है जैसे मेरा पैच काम कर रहा है और बुला रहा है।
मैं कैसे परीक्षण कर सकता हूं कि न केवल FooBar का एक उदाहरण बनता है, बल्कि यह भी कि उस पर सहेजने की विधि कहलाती है?
आपने मुझे जवाब में हराया! – fuzzyman
मेरी क्वेरी का जवाब देने के लिए उपरोक्त! आपका बहुत बहुत धन्यवाद! –
@ मैथ्यू! आपका बहुत बहुत धन्यवाद! –