我试着在测试Django应用程序的时候用一个富有想象力的名字Mock testing library来模拟一些东西。我似乎无法让它正常工作,我正在尝试:
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))
我做错什么了?
啊,我不知道该在哪里应用补丁装饰。固定:
要添加到Kit的答案中,为
patch.object()
指定第三个参数允许指定模拟对象/方法。否则,将使用默认的MagicMock
对象。注意,如果指定模拟对象,则默认的
MagicMock()
是不再传递到修补对象中--例如不再:但事实上:
http://www.voidspace.org.uk/python/mock/patch.html#patch-object
相关问题 更多 >
编程相关推荐