【发布时间】:2015-09-05 19:24:02
【问题描述】:
所以我刚刚开始使用模拟库来执行一些单元测试。但是遇到了一个对我来说肯定很神秘的问题。
当我调用下面的代码时,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
有没有办法正确地模拟这个函数?
【问题讨论】:
标签: python django python-2.7 unit-testing mocking