6
我需要測試一個調用open
的實例方法。在第一個測試案例中,我設置了mock.mock_open
以按預期返回一個字符串。這很奇妙。如何讓mock.mock_open引發IOError?
但是,我還需要測試從這個函數中拋出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'函數內?我編輯了我的答案,以顯示我的最新嘗試 - 也許你可以發現我的錯誤! – blz
@blz:'patch()'上下文管理器返回一個模擬。我會更新。 –
非常感謝!我是個新手,但實際上很簡單,只要有人告訴你它是如何完成的=) – blz