Python Mock初步

本文介绍了Python的Mock和MagicMock对象,它们允许在测试中模拟对象的属性和方法,便于在接口未实现或依赖其他模块时进行开发和测试。通过模拟返回值和检查函数调用,可以验证代码是否按预期工作。文中通过示例展示了如何使用mock进行模拟测试,以确保代码在外部资源交互时的正确性。
摘要由CSDN通过智能技术生成

一、 试试Mock,找点感觉

Mock和MagicMock对象的一大特点是:当你访问Mock对象的一个属性或者方法的时候,Mock对象会创建新的Mock对象绑定在该属性或者方法上。
看下面的运行结果

m = Mock()
In [14]: dir(m)
Out[14]: 
['assert_any_call',
 'assert_called',
 'assert_called_once',
 'assert_called_once_with',
 'assert_called_with',
 'assert_has_calls',
 'assert_not_called',
 'attach_mock',
 'call_args',
 'call_args_list',
 'call_count',
 'called',
 'configure_mock',
 'method_calls',
 'mock_add_spec',
 'mock_calls',
 'reset_mock',
 'return_value',
 'side_effect']

# -------------------------
In [15]: m.foo   #注意,此处没有报错,比如属性不存在之类的错误
Out[15]: <Mock name='mock.foo' id='140455918830032'>

dir(m)
Out[16]: 
['assert_any_call',
 'assert_called',
 'assert_called_once',
 'assert_called_once_with',
 'assert_called_with',
 'assert_has_calls',
 'assert_not_called',
 'attach_mock',
 'call_args',
 'call_args_list',
 'call_count',
 'called',
 'configure_mock',
 'foo',   ## 注意到多了这个属性
 'method_calls',
 'mock_add_spec',
 'mock_calls',
 'reset_mock',
 'return_value',
 'side_effect']

# ---------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值