我有一个需要测试的函数,如下所示:
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 吗?
最佳答案
虽然几乎可以肯定有某种方法可以访问 f1 内部的 f2 并在单元测试中为其创建 stub ,但几乎可以肯定,重构并将 f2 移出 f1 会更干净。像这样的事情:
def f1(var):
ret = f2(var)
def f2(var):
# some ops based on var
return result
关于python - 模拟另一个函数内部的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173269/