我在运行时有一个名为 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) 但仍然运行 get_account 而不是 mock_get_account 我是 python 新手,我不知道这是否可能,但我见过lamda 函数,我知道函数编程在 python 中是可能的。谢谢编辑:如果我执行以下操作:
package.get_account=self.mock_get_account
package.get_account(x,y)
然后一切正常,这意味着调用了 mock_get_account,但是在 mu 代码中,我下面的代码我做了一个 post self.client.post(url, data=data, follow=True) 触发 package.get_account 这不是在职的:
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 - 功能