実行時に get_account(param1,param2) という関数があるので、この関数を関数 mock_get_account(param1,param2) に置き換える必要があるため、システムが get_account(param1,param2) を呼び出すときは mock_get_account(param1,param2) が必要です代わりに呼び出されます。
私はこのコードを試しました: package.get_account=self.mock_get_account package.get_account(x,y) しかし、mock_get_account の代わりに get_account が実行されます。Python は初めてで、これが可能かどうかはわかりませんが、ラムダ関数と私はPythonで関数プログラミングが可能であることを知っています. ありがとう編集:私が次のことをした場合:
package.get_account=self.mock_get_account
package.get_account(x,y)
その後、すべて問題ありません。つまり、mock_get_account が呼び出されますが、mu コードでは、次のコードで、package.get_account をトリガーするポスト self.client.post(url, data=data, follow=True) を実行しますが、これはそうではありません働く:
package.get_account=self.mock_get_account
package.get_account(x,y)
#the folowing call will trigger the package.get_account(x,y) function in a django url #callback
self.client.post(url, data=data, follow=True)
古い関数を呼び出すことを意味し、 get_account(param1,param2) はファイル側で定義され、クラスの子関数ではなく、 mock_get_account(self,param1,param2) はクラス Test で定義され、内部で呼び出されますTest.test_account - 関数