Algunos documentos básicos:
doctest — Test interactive Python examples
unittest — Unit testing framework
bookmarks de fgomez en del.icio.us
Mi primera experiencia de testeo fue usar doctest para el método pywxis.WxisDb.index
en pywxis.py.
El uso de doctest plantea algunos dilemas, dado su carácter híbrido de documentación y código para tests, a un mismo tiempo. Si el espíritu de doctest —tal como dice Martelli en Python in a nutshell, 2nd ed.— es crear buenos ejemplos de uso, en lo posible haciendo como si unit testing no fuera parte de la cuestión, entonces tal vez deberíamos limitarnos a llamar directamente a los métodos públicos, sin caer en la tentación de (p.ej.) definir funciones auxiliares que simplifiquen la organización del código para los testeos. Sin embargo, si en lugar de incluir los tests de cierta complejidad como parte de los docstrings de los métodos, los aislamos en el atributo global test
, o incluso en un archivo aparte, entonces no estaríamos interfiriendo con el aspecto “documentador” de doctest.
TAREA: buscar ejemplos de tests en el mismo código fuente de Django.