Python实践97-mock简介

mock简介

  • mock用来替代你测试应用的某一部分
  • mock的好处之1:加快测试速度,如果你的应用是依赖于资源的,mock可以有效减少资源的占用
  • mock的好处之2:避免不必要的副作用

使用patch装饰器来mock对象

  • 下面这个例子,本来被调用的sum函数要执行很长时间
  • 为了加快测试进度,我们使用patch装饰器来直接mock sum函数
import unittest
import time
from unittest import TestCase
from unittest.mock import patch


def sum(a, b):
    time.sleep(100)  # long running process
    return a + b


class TestCalculator(TestCase):
    @patch('__main__.sum', return_value=5)
    def test_sum(self, sum):
        self.assertEqual(sum(2, 3), 5)


if __name__ == '__main__':
    unittest.main()

代码地址

本系列文章和代码已经作为项目归档到github,仓库地址:jumper2014/PyCodeComplete。大家觉得有帮助就请在github上star一下,你的支持是我更新的动力。什么?你没有github账号?学习Python怎么可以没有github账号呢,快去注册一个啦!