これが私のクラスです:
class GoogleCloudLayer:
def deleteMachine(self, machineName):
return machineName + ' is dead. (stubbed)'
できます:
>>> gc = GoogleCloudLayer()
>>> gc.deleteMachine('test')
test is dead (stubbed)
しかし、私はテストで使用したいので、assert_called_with
メソッドを定義したいと思います:
from mock import MagicMock
#Stubbing with itself just so it will have the `assert_called_with` method defined on it
GoogleCloudLayer.deleteMachine = MagicMock(side_effect = GoogleCloudLayer.deleteMachine)
しかし、私は得る
>>> gc = GoogleCloudLayer()
>>> gc.deleteMachine('test')
unbound method deleteMachine() must be called with GoogleCloudLayer instance as first argument (got str instance instead)
プロダクションコードを変更するgc.deleteMachine(gc, 'test')
と機能します。しかし、私たちはそれを望んでいませんよね?