Desarrollo basado en pruebas con Django

Archivada en Desarrollo Web

Desarrollo basado en pruebas con Django

Es importante conocer algunos conceptos importantes antes de iniciar de lleno con el desarrollo basado en pruebas (TDD) con Django y Python. Hay dos tipos de pruebas, las funcionales que son desde el punto de vista del usuario y las unitarias que son internas, desde el punto de vista del programador.

El paradigma TDD que vamos a seguir (vamos a obedecer a la cabra) es una mezcla de ambos conceptos. Este es el flujo de trabajo propuesto:

  1. Empezamos escribiendo una prueba funcional, que describe una nueva funcionalidad desde el punto de vista del usuario.
  2. Una vez que la prueba funciona falla, empezamos a pensar cómo escribir el código que pase la prueba (o por lo menos, solucione una parte de la falla). Ahora vamos a usar una o mas pruebas unitarias para definir como queremos que se comporte nuestro código - la idea es que cada línea de código de producción que escribamos tenga una prueba (por lo menos).
  3. Una vez que falla la prueba unitaria, escribiremos la menor cantidad de código posible, apenas el suficiente para pasar la prueba unitaria. Y empezaremos a dar vueltas por los puntos 2 y 3, hasta que hayamos avanzado un poco en la prueba funcional del punto 1.
  4. Ahora regresamos al punto 1 con nuestra prueba funcional y veremos si pasa o por lo menos tenemos un avance. Tal vez necesitemos más pruebas funcionales, y más código y volvemos a empezar.

Por ejemplo, vamos a escribir un conjunto de pruebas para el blog. La prueba funcional es que queremos ver la lista de entradas en el endpoint, incluyendo su categoría y sus etiquetas. Luego empezamos a agregar las pruebas unitarias necesarias para asegurar que avanzamos en el logro de esta prueba.

Luego vamos a escribir una prueba funcional para agregar una categoría usando el endpoint. Y las pruebas unitarias que se requieran.

Y asi… primero la prueba funcional, luego falla. Luego las pruebas unitarias, que fallan, se solucionan, se crean nuevas, fallan, se solucionan… etc.

Javier Sanchez Toledano

Auditor Líder ISO 9000 ● Desarrollo Web Full Stack ● Django/Python ● JavaScript · NodeJS · Angular · VueJS · EmberJS ● Swift 4 ● WordPress · Genesis Framework ● Lector ● Fotografo aficionado ● Generación X ● Soy de Tlaxcala

Tlaxcala, México

Comentarios