Tôi đang cố gắng mô phỏng thứ gì đó trong khi thử nghiệm ứng dụng Django bằng cách sử dụng thư viện thử nghiệm Mock được đặt tên theo trí tưởng tượng . Tôi dường như không thể làm cho nó hoạt động được, tôi đang cố gắng làm điều này:
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))
Tôi đang làm gì sai?
bar
thực tế là một "phương thức thể hiện" và tham số duy nhất của nó làself
. Để trở thành một phương thức lớp, nó sẽ cần được tham số hóa bằngcls
và sẽ có thể được gọi làPromotion.foo()
.