In [6]:
def sqrt(x):
assert x > 0, "error: valor negativo"
pass
sqrt(-2)
Pero se puede utilizar para muchas otras cosas:
In [5]:
assert(abs(3) == 3)
assert(abs(-9) == 9)
Cuando escribamos una función o método debemos probar los casos típicos y los valores límite para comprobar que se comporta según lo esperado. En próximas sesiones veremos cómo crear auténticos tests unitarios y cómo ejecutarlos con facilidad.
Para hacer comprobaciones en funciones que devuelven flotantes, debemos comprobar la diferencia con el error admitido.
In [11]:
import math
assert(abs(math.sin(1) - 0.84) <= 0.01)
Para comprobar que una instrucción eleva una excepción se puede generar un error de aserción de no producirse:
In [10]:
try:
math.sqrt(-2)
raise AssertException("Exception ValueError not raised")
except ValueError:
pass
Este tipo de pruebas puede ser suficiente para pruebas muy sencillas, pero para pruebas unitarias completas y bien organizadas se aconseja utilizar el módulo unittest.