2
在python 2.6或2.7,我想擺脫使用Mock.call_args_list時的'調用'的東西。刪除調用()時使用模擬
我基本上想檢查模擬是否在一些參數時被調用。
我有類似:
a = Mock()
...
self.assertEqual(a.call_args_list, ...)
但call_args_list樣子:
[call(arg1, arg2, arg3), call(...)]
如何訪問到arg2的價值恰恰不會重新創建一個完整的呼叫對象?
如果有一種方法可以遍歷所有「調用」對象並獲取所有參數的列表並只提取我需要的任何東西?
事情是,以前我沒有問題,call_args_list返回列表沒有這個「通話」的東西,我能夠做我想做的,但由於某種原因,「通話」開始出現,我不不知道如何正確處理它。
感謝這個答案。 對於call_args_list,[0]是arg列表,[1]似乎是kwargs。 – Gaetan
2項目和3項目元組的通用變體: 'args,kwargs = a.call_args [: - 2]' - 這裏我們總是取最後2項。 – MarSoft