Ich versuche, etwas zu verspotten, während ich eine Django-App mit der fantasievollen Mock-Testbibliothek teste . Ich kann es nicht ganz zum Laufen bringen, ich versuche das zu tun:
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))
Was mache ich falsch?
barist in der Tat eine "Instanzmethode" und ihr einziger Parameter istself. Um eine Klassenmethode zu sein, müsste sie mit parametriertclswerden und kann als aufgerufen werdenPromotion.foo().