Python:测试包含在另一个函数中的函数
我正在使用Python3、pytest和unittest。我有一个名为parent的函数,其中包含另一个名为child的函数 如何测试内部函数Python:测试包含在另一个函数中的函数,python,pytest,Python,Pytest,我正在使用Python3、pytest和unittest。我有一个名为parent的函数,其中包含另一个名为child的函数 如何测试内部函数 def parent(): ... def child(): .... ... 只能从父函数中调用该函数。它被称为包埋: def parent(): def child(): print('World') print('Hello') child() print
def parent():
...
def child():
....
...
只能从父函数中调用该函数。它被称为包埋:
def parent():
def child():
print('World')
print('Hello')
child()
print('Hello')
child()
print('Hello')
child()
parent()
产出:
Hello
World
Hello
World
Hello
World
这取决于您如何使用子方法,但您可以使用类: 要测试:
我认为您只能从父函数内部调用该函数。它被称为“内陷:”,你不能。如果该函数包含在另一个函数中,则它是父函数的实现细节,不应单独测试。您应该能够测试父函数,而不知道它正在调用另一个函数。如果您需要单独调用内部函数并对其进行测试,则不应将其嵌套。我很确定这一点以前已经得到了回答,但找不到它。。。基本上,每次输入外部函数时都会创建内部函数,因此无法对其进行测试,因为它在调用之前并不存在。@MrBean这是否真的取决于Python风格中的优化,但从概念上来说,您必须这样想,是的。
class Parent:
@classmethod
def child(cls):
print('hello')
@classmethod
def run(cls, *args, **kwargs):
cls.child()
Parent.run()
Parent.child()