想像上の名前のモックテストライブラリを使用してDjangoアプリをテストしているときに、何かをモックしようとしています。私はそれを完全に機能させることができないようです、私はこれをしようとしています:
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()
。