我可以在python中单元测试内部函数吗?

Gat*_*ter 8 python doctest unit-testing

有没有办法写unittestsdoctestsinnerfunc

def outerfunc():
    def innerfunc():
        do_something()
    return innerfunc()
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 8

只有当你提供一种提取内部函数对象本身的方法时,例如

def outerfunc(calltheinner=True):
    def innerfunc():
        do_something()
    if calltheinner:
        return innerfunc()
    else:
        return innerfunc
Run Code Online (Sandbox Code Playgroud)

如果你的外部功能坚持将内部完全隐藏在自身内部(在适当地哄骗时不要让它在外面渗透),你的单元测试无法击败这种对极端和完全隐私的强烈要求;-).