在Python中,side_effect是一个非常有用的功能,通常与unittest.mock模块中的MagicMock或patch一起使用。它允许你在测试过程中模拟函数的行为,并定义该函数在被调用时应该产生的副作用。 基础概念 side_effect可以是一个函数、一个可调用对象或者一个异常。当模拟的函数被调用时,side_effect指定的行为将被执行。 相关优...
unittest.mock是一个用于在Python中进行单元测试的库,Mock翻译过来就是模拟的意思,顾名思义这个库的主...
return_value就是被mock的对象被调用时的返回值side_effect用于replace被mock的对象的。 调用于被mock的...
如果 side_effect 是可迭代对象,则每次调用 mock 都将返回可迭代对象的下一个值。 side_effect 为 None 即可清空。(简单来说,mock 函数的参数会原样传递给 side_effect,如果 side_effect 返回值不是 DEFAULT,则将 side_effect 的返回值作为 mock 的返回值。因此我们可以用它来抛出异常,或者迭代数据) return_va...
side_effect: 它既可以是一个mock对象被调用时执行的可调用的函数,也可以是一个可迭代对象或者执行时抛出的一个异常(异常类或实例)。 如果side_effect实际指向一个函数,那么当此mock对象被调用时,side_effect会直接传递传入mock的参数给函数并执行之。除非该函数返回unittest.mock.DEFAULT单例对象,否则mock对象返回此...
side_effect: 这个参数指向一个可调用对象,接收一个可迭代序列。可以抛出异常或者动态改变值。当传递这个参数的时候return_value 参数就会失效。 from unittest import mock result1 = mock.Mock(name='mock名称') print(result1) mock_value1 = mock.Mock(return_value="返回值1") print(mock_value1()) mock...
class Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, **kwargs) Mock类主要的几个参数: name:命名一个mock对象,只是起到标识作用,可以通过print查看。 return_value: 定义mock方法的返回值,可以指定一个值(或者对象),当mock对象被调用时,返回return_value...
Mock是Python中一个用于模拟测试的库,通常用于模拟函数、类或对象的行为。通过使用Mock,我们可以在测试中替换掉真实的对象,从而实现对代码的各种情况进行模拟。 如何模拟异常 使用Mock来模拟异常非常简单,我们只需在Mock对象上调用side_effect属性,并传入一个异常对象即可。下面是一个示例代码: ...
classSubClass(object):defadd(self,a,b):"""两个数相加"""returna+bclassTestSub(unittest.TestCase):"""测试两个数相加用例"""deftest_add2(self):# 初始化被测函数类实例sub=SubClass()# 创建一个mock对象 return_value代表mock一个数据# 传递side_effect关键字参数, 会覆盖return_value参数值, 使用真...
mock = Mock() attrs = {'method.return_value':3,'other.side_effect':KeyError} mock.configure_mock(**attrs) mock.method() # return 3 mock.other() # return KeyError 3.mock其他module中使用的函数 假如test_fuction_uu.py中要测试fuction_uu,但是fuction_uu调用了myfuction,我想要mock这个myfuction...