我需要测试一个调用open
方法的实例方法。在第一个测试用例中,我设置了mock.mock_open
返回一个字符串,如预期一样。这很好地工作。
然而,我还需要测试从该函数抛出IOError
的情况。我该如何使mock.mock_open
引发任意异常?
到目前为止,这是我的方法:
@mock.patch.object(somemodule, 'generateDefaultKey')
def test_load_privatekey(self, genkey)
mo = mock.mock_open(read_data=self.key)
mo.side_effect = IOError
with mock.patch('__main__.open', mo, create=True):
self.controller.loadPrivkey()
self.assertTrue(genkey.called, 'Key failed to regenerate')
TestCase
函数中使用?我已经编辑了我的答案,展示了我最新的尝试--也许你能发现我的错误! - Louis Thibaultpatch()
上下文管理器返回一个模拟对象。我会更新。 - Martijn Pieters