2
所以我刚开始使用模拟库来执行一些单元测试。但碰到了一个对我来说确实很神秘的问题。布尔函数的Python嘲弄
当我调用下面的代码时,stream.open()总是计算为True,因为它似乎是返回Mock对象而不是False值。
测试代码
@patch('module.lib.stream')
def test_error_raised(self, mock_stream):
mock_stream.open.return_value = False
self.assertRaises(IOError, get_query, 618)
被调用函数
def get_query(id):
id = str(id)
fpath = os.path.join(
path, '{0}.pdf'.format(id))
stream = stream()
if not stream.open(fpath):
raise IOError("No file found")
list = map(foo, stream.GetData())
first_entry = list[0]
target_entries = list[1:]
return first_entry, target_entries
是否有办法妥善嘲笑这个功能呢?
这正是我的问题。非常感谢 – badisa