我需要测试一个函数,如下所示:
def f1(var):
def f2(var):
# some ops based on var
# return the result
ret = f2(var)
# ops
在我的单元测试中,我想模拟f2的返回值,它位于f1内。
我试图用
模仿它f1.f2.return_value
和
f2.return_value
但都失败了。
那我怎么能在f1里面模仿f2,
或者我应该重构代码以将f2移出f1?
答案 0 :(得分:1)
虽然几乎可以肯定某种方式来访问f1内部的f2并在单元测试中为它创建一个存根,但重构和将f2移出f1几乎肯定会更清晰。像这样:
def f1(var):
ret = f2(var)
def f2(var):
# some ops based on var
return result