18
假設這是代碼嘲笑 - 如何在呼叫者上引發異常?
def move(*args, **kwargs):
try:
shutil.move(source, destination)
except Exception as e:
raise e
,並在我的tests.py
@patch.object(shutil, 'move')
def test_move_catch_exception(self, mock_rmtree):
''' Tests moving a target hits exception. '''
mock_rmtree.side_effect = Exception('abc')
self.assertRaises(Exception, move,
self.src_f, self.src_f, **self.kwargs)
它說,這
File "unittests.py", line 84, in test_move_catch_exception
self.src_f, self.src_f, **self.kwargs)
AssertionError: Exception not raised
如果我斷言上mock_rmtree
它會通過。我怎麼能在呼叫者斷言(在這種情況下,功能move
)?
由於aquavitae指出,最主要的原因是複製粘貼錯誤,還有,我也主張在開始的元組。總是使用正確的返回類型...
謝謝你這麼多。我爲混亂道歉。這是一個複製粘貼錯誤,我沒有抓到。是的,我正在補丁而不是rmtree。我相應地編輯了這篇文章。你對我的粗心在這裏是正確的。非常感謝。 – CppLearner 2012-04-25 06:44:10