我需要测试一个可以移动文件的方法。我不希望文件移动操作实际发生,我只需要知道被测试的方法对shutil.move
进行了正确的调用
修补shutil.move
的最佳方法是什么,以便该方法可以在不执行实际文件操作的情况下调用它?在
我是这样做的,但是很难看,我想用模拟库:
real_move = ftp2email.shutil.move
move_operations = []
def fake_move(src, dst):
move_operations.append((src, dst))
ftp2email.shutil.move = fake_move
msg_id = '/path/to/message.xml'
self.ch.mark_message(msg_id)
self.assertEqual(move_operations,
[('/path/to/message.xml', '/path/to/archived/message.xml')])
ftp2email.shutil.move = real_move
你可以尝试使用mox,它可以做这种事情。在
来自mox recipes。在
我用Mock library解决了这个问题
这只是一种方法,我也可以用'with语句'或调用mock方法start和stop来完成。在
相关问题 更多 >
编程相关推荐