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'
は誰でも上の任意の光を当てることができます私が間違っていることは何ですか?
おかげで、私は、私は 'TypeError例外を得ることを試してください:建ての属性を設定することはできません。 -in/extension type 'instance''を使用すると、mockerのインストールに問題がある可能性があります。 – Ctrlspc
そうかもしれないけど、どういうわけかMockerを間違った方法で使いこなそうとしているのだろう。申し訳ありませんが、わかりません。 – bpgergo