0
我越來越TypeError需要正好2個參數(0給出),而試圖嘲笑類功能使用python模擬框架。使用Python模擬框架嘲笑時TypeError
>>> class ExampleClass():
... @staticmethod
... def _process_updates(arg1, arg2):
... pass
...
>>>
>>> @patch("ExampleClass._process_updates")
... def process_updates(arg1, arg2):
... return "test"
...
>>> ExampleClass._process_updates()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: _process_updates() takes exactly 2 arguments (0 given)
>>>
你如何運行第二個代碼段?修補程序修飾器僅適用於它所修飾的方法;在其他任何時候調用'_process_updates'時,該補丁不是活動的,並且使用了原始方法。 –
我認爲你在'process_updates'中缺少裝飾器發送的'MagicMock'的第二個參數。 – Grimmy
@DanielRoseman所有這些代碼都是在python控制檯中定義的。第二個代碼片段從上面提到的代碼已經寫入的同一個python控制檯運行。 – user2819403