可以使用mock.Mock
对象实现side_effect
来避免在side_effect
中引发异常。例如:
import mock
def test_example():
with mock.patch('module_name.function_name') as mocked_function:
def side_effect(*args, **kwargs):
return 42
mocked_function.side_effect = side_effect
result = module_name.function_name()
assert result == 42
在上面的示例中,mocked_function
被重命名为side_effect
。并且,side_effect
函数被定义为返回值为42,而不是引发异常。最后,我们将side_effect
函数分配给mocked_function.side_effect
属性,并通过调用module_name.function_name()
来测试本机功能。因为我们使用了一个假的函数,所以不会发生真正的方法调用。但是,我们确信函数将返回42,而不是引发异常。