f1()
在以下示例中,您将如何对嵌套函数进行单元测试?
def f():
def f1():
return 1
return 2
还是不应该嵌套需要测试的函数?
f1()
在以下示例中,您将如何对嵌套函数进行单元测试?
def f():
def f1():
return 1
return 2
还是不应该嵌套需要测试的函数?
此链接中有一个类似的问题。但简短的回答:您不能从外部元素访问内部函数。
出于测试目的,也许另一种方法是将内部函数更改为私有外部函数?
你没有,因为你做不到。
您将不得不将单元测试限制在外部函数中,或者将内部函数移到其他地方。
我也有同样的疑问,并找到了一种方法来测试内部函数。
def outer():
def inner():
pass
if __debug__:
test_inner(inner)
# return
def test_inner(f):
f() # this calls the inner function
outer()
基本上,您可以将内部函数作为参数发送到外部并根据需要对其进行测试。当调用 outer() 时,您的测试将运行,并且由于它是一个闭包,它将保留外部函数的任何额外属性(如变量)。使用列表,您可以发送任意数量的函数。要忽略if,一个选项是运行这样的代码:
python -O code.py