使用Python的mock库来对现有对象的调用进行监视
- 论坛
- 使用Python的mock库来对现有对象的调用进行监视
6 浏览
使用Python的mock库来对现有对象的调用进行监视
我正在使用Python的mock模块进行测试。我想用一个模拟对象替换一个活动对象,并自动将所有对模拟对象的调用转发给原始对象。我认为在标准的测试术语中,这被称为"Spy"。目前,在测试中我是这样做的:
# 插入一个模拟替代品 orig_active_attr = server.active_attr server.active_attr = mock.Mock() # 设置副作用以将调用“代理”给原始对象 server.active_attr.meth1.side_effect = orig_active_attr.meth1 server.active_attr.meth2.side_effect = orig_active_attr.meth2 # 调用被测试的方法 server.method_being_tested() # 对模拟对象进行断言 server.active_attr.meth2.assert_called_once()
如果所有对模拟对象的方法调用都可以自动转发给活动对象,而不需要这些样板代码,那就太好了。