8

有什么办法可以写unittestsdoctestsforinnerfunc吗?

def outerfunc():
    def innerfunc():
        do_something()
    return innerfunc()
4

2 回答 2

8

仅当您提供一种方法来提取内部函数对象本身时,例如

def outerfunc(calltheinner=True):
    def innerfunc():
        do_something()
    if calltheinner:
        return innerfunc()
    else:
        return innerfunc

如果您的外部功能坚持将内部功能完全隐藏在自身内部(在适当的劝说下不要让它渗透到外部),那么您的单元测试就无法击败这种对极端和完全隐私的强烈要求;-)。

于 2010-01-26T01:06:17.917 回答
4

这实际上是一个旧的开放 Python 问题:

有一个候选补丁(从 2007 年开始)可以让 doctest 找到嵌套函数,但可能有人需要推动它。

于 2010-10-04T09:55:54.070 回答