gpt4 book ai didi

python - 对嵌套函数运行单元测试

转载 作者:太空狗 更新时间:2023-10-29 19:32:35 24 4
gpt4 key购买 nike

我来自 Java 世界,您可以在其中隐藏变量和函数,然后使用反射对它们运行单元测试。我使用嵌套函数来隐藏我的类的实现细节,以便只有公共(public) API 可见。我正在尝试针对这些嵌套函数编写单元测试,以确保我在开发时不会破坏它们。我试过调用其中一个嵌套函数,例如:

def outer():
def inner():
pass

outer.inner()

导致错误消息:

AttributeError: 'function' object has no attribute 'inner'

有没有办法让我针对这些嵌套函数编写单元测试?如果没有,是否有一种方法可以通过在类变量前加上 __ 来触发函数名称的名称修改,就像类变量一样?

最佳答案

只有外层存在,内层才会存在。您应该将内部向上移动到顶层函数以实现可测试性,或者让外部测试测试其自身和内部的所有可能执行路径。

请注意,内部函数不是一个简单的函数,它是一个闭包。考虑这种情况:

def outer(a):
b = compute_something_from(a)
def inner():
do_something_with(a, b)

这是标准的可测试性权衡。如果你的cyclomatic complexity太高了,你的测试会太多。

关于python - 对嵌套函数运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com