簡體   English   中英

Python將對象作為side_effect傳遞給ock.patch

[英]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將使用與arg1arg2調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM