问题描述
我在测试 Django 应用程序时尝试模拟一些东西,使用富有想象力的名称 模拟测试库.我似乎无法让它工作,我正在尝试这样做:
I'm trying to mock something while testing a Django app using the imaginatively named Mock testing library. I can't seem to quite get it to work, I'm trying to do this:
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))
我做错了什么?
推荐答案
啊,我对在哪里应用补丁装饰器感到困惑.固定:
Ah I was confused on where to apply that patch decorator. Fixed:
class ViewsDoSomething(TestCase): view = 'my_app.views.do_something' @patch.object(my_app.models.FooClass, 'bar') def test_enter_promotion(self, mock_method): self.client.get(reverse(view))