[Python Modules] unittest
五夜光寒,照来积雪平于栈。西风何限,自起披衣看。 对此茫茫,不觉成长叹。何时旦,晓星欲散,飞起平沙雁。 在某个Python程序中看到这么一行 from unittest import mock 看起来像是一个Python自带的测试库。 经查 , unittest.mock 允许用户使用假的对象代替系统的真实对象。mock库中常用的是 MagicMock, Mock, patch() : >>> from unittest.mock import MagicMock >>> thing = ProductionClass() >>> thing.method = MagicMock(return_value=3) >>> thing.method(3, 4, 5, key='value') 3 可以看出 MagicMock 可以改变函数为固定输出。同事可以使用 side_effect 参数使得函数具有其他功能,可以实现函数的功能或者报错。 >>> mock = Mock(side_effect=KeyError('foo')) >>> mock() Traceback (most recent call last): ... KeyError: 'foo' >>> values = {'a': 1, 'b': 2, 'c': 3} >>> def side_effect(arg):