Designed by Freepik

Con este post inauguro mi participación en este blog, sitio en el cual les invito a disfrutar y aprender de su contenido.

En el desarrollo de aplicaciones a través de diversos lenguajes y frameworks una labor importante, pero costosa en tiempo y recursos, es la realización de pruebas a los programas desarrollados.

Con la evolución de la programación y el advenimiento del uso de frameworks se desea obtener una mayor eficiencia en la ejecución de pruebas, de tal manera que se puedan realizar de forma menos tediosa.

Para esto, aquellos programadores que estamos relacionados con el mundo de Django y Python, buscamos herramientas que vengan al rescate en la automatización de las pruebas unitarias y de integración a los componentes de código realizados.

Es en esta oportunidad  me permito presentarle una de ellas, de entre varias que existen.

Su nombre suena a superhéroe: Factory Boy. Dentro de esta herramienta podemos encontrar al compañero de todo héroe: Faker, incansable apoyo en el cumplimiento de la misión objetivo: generación de datos  y automatización de pruebas.

Factory Boy nació como una versión en Python de un proyecto de Ruby conocido como Factory Girl. Fue diseñado para trabajar inicialmente con Django, pero ahora se encuentra disponible para el uso en . La versión actual es la no.

A su vez, Faker es un paquete de python que genera datos para pruebas en forma random. Al instalar Factory Boy se incluye el paquete Faker.

A través del siguiente ejemplo, desarrollaremos un uso básico de estas herramientas. Para lograr la ejecución de pruebas de dicho ejemplo, realizaremos los siguientes pasos:

  • Instalar factory boy en nuestro ambiente de pruebas de python.

En este caso, utilizando un ambiente virtual de python, invocaremos la siguiente instrucción para su             instalación.

  • Crear proyecto en Django.

Para efectos de este ejemplo se ha creado un proyecto llamado Factories, con un app de nombre testFactory.

  • Crear un modelo de clases en Python utilizando Django.

El modelo creado ilustra una base de clientes a los cuales se les registrarán diversos tipos de eventos que soliciten realizar como anfitriones y la lista de participantes de cada uno de los eventos.

Se incluyen atributos de Foreign key para las clases dependientes.

  • Se realizan las migraciones respectivas para crear el modelo de datos.

Este modelo de datos estará siendo manejado en una base de datos SQLite.

Como ejemplo, podemos observar las diversas migraciones que se crearon a medida que se iban haciendo cambios al modelo.

  • Crear archivo factories.py para incluir la construcción de los datos de prueba.

De acuerdo a las buenas prácticas, se ha creado un paquete de Python para mantener separada la generación de los datos de prueba de cada una de las clases mencionadas.

Dentro del archivo factories.py se puede observar documentación que explica los diferentes métodos de Faker usados, además de los paquetes de Factory Boy.

 

  • Incluir los casos de prueba en el archivo tests.py

Para estos casos de prueba se invocarán los factories de cada una de las clases para probar la generación de los datos de prueba.

  • Ejecución de los casos de prueba en el archivo tests.py

A continuación se puede observar el resultado de la ejecución de las pruebas:

 

Mayor referencia en:

https://es.slideshare.net/txels/factories-mocks-and-spies-a-testers-little-helpers

Share: