python之mock模块基本使用方法详解

  • Post category:Python

Python之Mock模块基本使用方法详解

什么是Mock模块

Mock(英文意为:模拟、假装)是Python中一个非常强大的测试模拟框架,Mock能够帮助我们更好地组织和测试代码。Mock可以非常方便地模拟测试中的数据、方法和对象。使用Mock,我们可以专注于测试成员接口的返回值和程序行为,而无需担心协作组件的真实实现。

安装Mock模块

Mock是Python的一个第三方库,可以使用pip安装

pip install mock

基本使用方法

导入mock模块

from unittest import mock

Mock一个对象

使用Mock模块可以轻松地Mock一个对象,例如:

m = mock.Mock()
print(m)
print(m.__str__())
print(m.__str__.return_value)
m.__str__.return_value = "Hello world!"
print(m)

输出:

<Mock id='140097041288784'>
<Mock name='mock.__str__()' id='140097039797776'>
<Mock name='mock.__str__.return_value' id='140097039799680'>
Hello world!

Mock一个函数

Mock一个函数和Mock一个对象使用方法类似:

def foo():
    return 'bar'

m = mock.Mock()
m.side_effect = foo
print(m())

输出:

bar

添加测试

Mock模块可以用来单元测试,例如:

def function_to_test(x):
    return x.upper()

import unittest

class MyTest(unittest.TestCase):
    def test(self):
        with mock.patch("__main__.function_to_test", return_value="moke test") as mock_upper:
            result = function_to_test("abc")
            mock_upper.assert_called_once_with("abc")
            self.assertEqual(result, "MOCK TEST")

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

结束语

以上就是Mock模块的基本使用方法示例,希望可以帮助到使用Python进行测试的程序员们。