¿Hay alguna forma de escribir unittests
o doctests
para innerfunc
?¿Puedo probar la unidad una función interna en python?
def outerfunc():
def innerfunc():
do_something()
return innerfunc()
¿Hay alguna forma de escribir unittests
o doctests
para innerfunc
?¿Puedo probar la unidad una función interna en python?
def outerfunc():
def innerfunc():
do_something()
return innerfunc()
Solo si proporciona una forma de extraer el objeto interno de la función, p. Ej.
def outerfunc(calltheinner=True):
def innerfunc():
do_something()
if calltheinner:
return innerfunc()
else:
return innerfunc
Si su función externa insiste en ocultar la interior completamente dentro de sí mismo (no dejar que se infiltre aire libre cuando cajoled adecuadamente para hacerlo), su unidad de pruebas no tienen poder para derrotar a esta fuerte apuesta por la privacidad extrema y total de ;-).
que era mi sospecha, gracias. – Gattster
Esto es en realidad un viejo problema Python abierta:
Hay un parche candidato (de 2007) que hace doctest encontrar funciones anidadas, pero alguien probablemente necesita para empujar esto.
Normalmente no hace esto: la API es la función adjunta, y las funciones internas son análogas a los bloques de código con nombre en la función. No los prueba directamente, del mismo modo que no prueba un solo bucle dentro de una función directamente; prueba las entradas a la función que ejercita el bloque de código. –