使用Mock做Python单元测试

程序员的名义IP属地: 陕西
字数 225

大家都知道当我们测试一些复杂依赖其它系统的方法时Mock是很重要的手段,比如说下面的function A它的结果是依赖于function B的返回结果的:

def A():
    ret = B()
    if ret:
        return Ture
    else:
        <error handling>
        return False

假设function B很费时间,最致命的是B来自其它模块你有可能不能随心所欲地测试function A的所有分支——因为有想要B按你的要求输出结果测试数据将很难准备,这个时候Mock就可以帮到你了!

from mock import patch, MagicMock
@patch('B')
def test_function_A(self, mock_B):
    mock_B.return_value = True
    self.assertEqual(True, A())

看到没,使用Mock, 你可以直接设定B的返回值,从此测试function A的时候你不用再费心让function B返回你想要的结果!
   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
1人点赞
总资产48共写了2937字获得4个赞共9个粉丝

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 功能介绍 好的编码习惯都应该为每一行代码做覆盖测试,但有些时候代码处理的是从网络上获取的内容,或者设备的返回,比如...
    羽风之歌阅读 15,714评论 1 15
  • Startup 单元测试的核心价值在于两点: 更加精确地定义某段代码的作用,从而使代码的耦合性更低 避免程序员写出...
    wuwenxiang阅读 10,163评论 1 27
  • 1.WAS IT A CAR OR A CAT I SAW.. 'WASITACARORACATISAW'.. T...
    逆尘阅读 3,056评论 1 16
  • 文/欣欣熳 成功是我们每个人都热切渴望的。我们都期待活成那个自己想要的样子,有一个丰盈的人生。 那如何才能拥有一个...
    欣欣熳阅读 589评论 0 1