Python 模拟位于另一个函数内的函数
我有一个功能需要测试,如下所示:Python 模拟位于另一个函数内的函数,python,unit-testing,mocking,Python,Unit Testing,Mocking,我有一个功能需要测试,如下所示: def f1(var): def f2(var): # some ops based on var # return the result ret = f2(var) # ops def f1(var): ret = f2(var) def f2(var): # some ops based on var return result 在我的单元测试中,我想模拟f2的返回值,它位于
def f1(var):
def f2(var):
# some ops based on var
# return the result
ret = f2(var)
# ops
def f1(var):
ret = f2(var)
def f2(var):
# some ops based on var
return result
在我的单元测试中,我想模拟f2的返回值,它位于f1内部
我试着用一句话来嘲弄它
f1.f2.return_value
及
但两者都失败了
那我怎么能在f1里面模仿f2呢
或者我应该重构代码以将f2移出f1?虽然几乎肯定有某种方法可以访问f1内部的f2并在单元测试中为其创建存根,但重构并将f2移出f1几乎肯定会更干净。大概是这样的:
def f1(var):
def f2(var):
# some ops based on var
# return the result
ret = f2(var)
# ops
def f1(var):
ret = f2(var)
def f2(var):
# some ops based on var
return result