我正在尝试使用富有想象力的Mock测试库测试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()。