मैं एक जांगो ऐप का परीक्षण करते समय कुछ नकली करने की कोशिश कर रहा हूं जो कल्पनाशील नाम से मॉक टेस्टिंग लाइब्रेरी का उपयोग कर रहा है । मुझे लगता है कि यह काम करने के लिए काफी नहीं मिल रहा है, मैं यह करने की कोशिश कर रहा हूं:
models.py
from somelib import FooClass
class Promotion(models.Model):
foo = models.ForeignKey(FooClass)
def bar(self):
print "Do something I don't want!"
test.py
class ViewsDoSomething(TestCase):
view = 'my_app.views.do_something'
def test_enter_promotion(self):
@patch.object(my_app.models.FooClass, 'bar')
def fake_bar(self, mock_my_method):
print "Do something I want!"
return True
self.client.get(reverse(view))
मैं क्या गलत कर रहा हूं?
bar
वास्तव में एक "उदाहरण विधि" है, और इसका एकमात्र पैरामीटर हैself
। एक क्लास विधि होने के लिए, इसे पैरामीटर के साथ निर्धारित करने की आवश्यकता होगीcls
, और जैसा कि कॉल करने योग्य होगाPromotion.foo()
।