【发布时间】:2012-05-05 18:03:01
【问题描述】:
假设这是代码
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所指出的,主要原因是复制粘贴错误,而且我一开始就断言了一个元组。始终断言正确的返回类型...
【问题讨论】:
标签: python unit-testing mocking