[英]Python passing an object as side_effect to mock.patch
我和我的講師爭論不休-他堅持認為可以將對象作為side_effect的值傳遞給mock.patch,以模擬程序中的原始函數,同時仍然接受傳遞給該函數的論點-特別是情況下,將它們存儲在對象中。
基本上:
with mock.patch('function_to_be_mocked', side_effect=my_object) as m:
function_to_be_mocked(arg1, arg2)
在這兩行代碼之后,arg1和arg2將作為屬性存儲在my_object中。
但是,根據side_effect的文檔,唯一可以傳遞給side_effect的對象是Exception或Iterables,並且它們都不關心傳遞給原始函數的參數。
我試圖指出這個錯誤,但是我的講師說有一種解決方法。
實際上有辦法嗎,還是只是我的講師拒絕承認自己的錯誤?
我認為他是對的。 我們可以將callable分配給side_effect,並且可調用function_to_be_mocked
將使用與arg1
, arg2
調用function_to_be_mocked
相同的參數來調用。
來源和范例: https : //docs.python.org/3.6/library/unittest.mock.html#unittest.mock.Mock.side_effect
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.