0
Mocker具有修補功能,它允許您替換一個類,以便此類的所有實例都將修補到您的模擬中。如何使用Mocker模擬一個來自第三方庫的類
我想做一些使用pysnmp的函數的測試,並且我試圖嘲笑使用這個庫的調用。
在我的代碼我這樣做:
from pysnmp.entity.rfc3413.oneliner import cmdgen
commandGen = cmdgen.CommandGenerator()
... code that uses commandGen
在我的測試中,我嘗試:
from mocker import Mocker
mocker = Mocker()
commandGenMock = mocker.patch(cmdgen.CommandGenerator)
commandGenMock.doSomething()
mocker.replay()
,我得到以下幾點:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
mocker.replay()
File "build\bdist.win32\egg\mocker.py", line 578, in replay
event.replay()
File "build\bdist.win32\egg\mocker.py", line 1757, in replay
task.replay()
File "build\bdist.win32\egg\mocker.py", line 2197, in replay
self.is_monitoring))
File "build\bdist.win32\egg\mocker.py", line 2157, in patch_attr
setattr(obj, attr, value)
TypeError: can't set attributes of built-in/extension type 'classobj'
誰能上有何啓示我做錯了什麼?
謝謝你的提示,但是當我嘗試,我得到'類型錯誤:不能設置內置屬性-in/extension type'instance'',或許我的安裝模擬器有問題? – Ctrlspc
那麼,情況可能是這樣,但我懷疑,不知何故,你試圖以錯誤的方式使用Mocker。對不起,我不知道。 – bpgergo