python中with open中参数的介绍_如何模拟with语句中使用的open(使用Python中的Mock框架)?...

富国沪深

这些答案中有很多噪音; 几乎所有都是正确但过时而不整洁。mock_open是mock框架的一部分,使用起来非常简单。patch用作上下文返回用于替换已修补的对象的对象:您可以使用它来使您的测试更简单。Python 3.x用builtins而不是__builtin__。from unittest.mock import patch, mock_openwith patch("builtins.open", mock_open(read_data="data")) as mock_file:    assert open("path/to/open").read() == "data"    mock_file.assert_called_with("path/to/open")Python 2.7mock不是一部分,unittest你应该补丁__builtin__from mock import patch, mock_openwith patch("__builtin__.open", mock_open(read_data="data")) as mock_file:    assert open("path/to/open").read() == "data"    mock_file.assert_called_with("path/to/open")装饰案例如果你patch使用mock_open()'s结果作为装饰器,因为new patch's参数可能有点奇怪。在这种情况下最好使用new_callable patch's参数,并记住每个patch不使用的额外参数将传递给new_callable函数,如patch文档中所述。patch()接受任意关键字参数。这些将在构造时传递给Mock(或new_callable)。例如,Python 3.x的装饰版本是:@patch("builtins.open", new_callable=mock_open, read_data="data")def test_patch(mock_file):    assert open("path/to/open").read() == "data"    mock_file.assert_called_with("path/to/open")请记住,在这种情况下,patch将添加模拟对象作为测试函数的参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值