相关疑难解决方法(0)

覆盖实例级别的方法

有没有办法在Python中覆盖实例级别的类方法?例如:

class Dog:
    def bark(self):
        print "WOOF"

boby = Dog()
boby.bark() # WOOF
# METHOD OVERRIDE
boby.bark() # WoOoOoF!!
Run Code Online (Sandbox Code Playgroud)

python

74
推荐指数
6
解决办法
5万
查看次数

使用模拟补丁来模拟实例方法

我正在尝试使用富有想象力的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))
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python mocking

67
推荐指数
3
解决办法
6万
查看次数

标签 统计

python ×2

mocking ×1