![](/img/trans.png)
[英]How to access a child class's overridden class property in a base class's method? '__class__' still point to the base class
[英]How to mock a base class's method when it was overridden?
我有类似的代码:
from mock import MagicMock
class Parent(object):
def test_method(self, param):
# do something with param
pass
class Child(Parent):
def test_method(self, param):
# do something Child-specific with param
super(Child, self).test_method(param)
现在,我要确保Child.test_method
调用Parent.test_method
。 为此,我想使用来自模拟模块/库的assert_called_once_with
。 但是,我找不到解决方法。 如果该方法不会被子类覆盖,这很容易,正如Need在python测试案例中模拟一些基类行为所指出的。 但是,就我而言,这是相同的方法,那么我该怎么办?
您可以使用patch.object :
with mock.patch.object(Parent, 'test_method') as mock_method:
child = Child()
mock_param = mock.Mock()
child.test_method(mock_param)
mock_method.assert_called_with(mock_param)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.