Gibt es eine Möglichkeit, unittests
oder doctests
für innerfunc
zu schreiben?Kann ich eine innere Funktion in Python Unit testen?
def outerfunc():
def innerfunc():
do_something()
return innerfunc()
Gibt es eine Möglichkeit, unittests
oder doctests
für innerfunc
zu schreiben?Kann ich eine innere Funktion in Python Unit testen?
def outerfunc():
def innerfunc():
do_something()
return innerfunc()
Nur wenn Sie eine Möglichkeit bereitstellen, das innere Funktionsobjekt selbst zu extrahieren, z.
def outerfunc(calltheinner=True):
def innerfunc():
do_something()
if calltheinner:
return innerfunc()
else:
return innerfunc
Wenn Ihre äußere Funktion auf Ausblenden der innere ganz in sich selbst besteht (nie lässt sie außen sickern, wenn sie richtig, so zu tun schmeichelte), Ihre Komponententests sind machtlos, diese starke Gebot für extreme und absolute Privatsphäre zu besiegen ;-).
Das war mein Verdacht, danke. – Gattster
Dies ist eigentlich eine alte offene Python Ausgabe:
Es gibt einen Kandidaten Patch (ab 2007), die verschachtelte Funktionen doctest finden macht, aber jemand muss wohl diese drücken.
Normalerweise tun Sie dies nicht: Die API ist die umschließende Funktion und innere Funktionen sind analog zu benannten Code-Blöcken in der Funktion. Sie testen sie nicht direkt, genauso wenig wie Sie eine einzelne Schleife innerhalb einer Funktion direkt testen. Sie testen die Eingaben für die Funktion, die den Codeblock ausübt. –