jav*_*vex 4 python mocking python-2.7 python-3.x
我有一个类似的代码:
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)
Run Code Online (Sandbox Code Playgroud)
现在我想确保Child.test_method调用Parent.test_method. 为此,我想assert_called_once_with从模拟模块/库中使用。但是,我想不出一种方法来做到这一点。如果该方法不会被子类覆盖,这将很容易,正如需要在 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5756 次 |
| 最近记录: |