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