可以使用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,而不是引发异常。