06
March
0

Pruebas de Software en Rails. ¿De verdad lo necesitamos?

Las pruebas de software pueden ayudarnos a detectar fallos en las características que hemos desarrollado para nuestras aplicaciones y así evitarnos muchos dolores de cabeza al momento de pasar a producción. Pero también es necesario invertir cierto tiempo en escribirlas y probar que todo funcione correctamente. Por eso muchos desarrolladores se han dado a la tarea de dotar de librerías para facilitar el proceso de pruebas. 

Rails no es la excepción, por defecto, se incluyen gemas que nos ayudan con la tarea de hacer nuestras pruebas unitarias y de integración en el proyecto. Y muchos miembros de la comunidad de desarrolladores han adoptado el TDD (Test Driven Development) como el pan de cada día para el desarrollo. El TDD nos dice que primero debemos crear las pruebas de nuestras características y después escribir el código necesario para hacer que las pruebas pasen exitosamente. 

Rails actualmente trae consigo una librería por defecto para pruebas llamada Minitest. 


De la documentación de esta librería podemos rescatar que: 

    • Cada vez que se crea un nuevo proyecto en RailsRails crea un directorio de pruebas para la aplicación. 
    • Cada vez que creamos un nuevo modelo, Rails creará los archivos de pruebas correspondientes a ese modelo. 

El hecho de que Rails contenga por defecto MiniTest como librería de pruebas no signifca que sea la única o la mejor librería. Actualmente se utilizan dos “Stacks” de pruebas en las aplicaciones de Rails que los desarrolladores pueden usar de acuerdo a sus gustos de como escribir código como aquí. Por ejemplo, Existe la gema llamada RSpec, que se centra en la legibilidad de las pruebas, ya que usa palabras (en inglés) que hacen que escribir nuestras pruebas sean fácilmente comprensibles y descriptivas. 

Algunas de las herramientas más utilizadas por los desarrolladores para hacer sus pruebas son las siguientes: 

 

    • RSPec o MiniTest para escribir pruebas unitarias. 
    • Cucumber para escribes pruebas de aceptación. 
    • Shoulda Matchers para hacer pruebas más legibles y fáciles de escribir. 
    • Factory bot para crear datos para usar en las pruebas (modelos, clases, etc.). 
    • Database Cleaner para resetear la base de datos cada vez que corremos nuestras pruebas. 
    • Rails Controller Testing para realizar pruebas también en nuestros controladores. 

 

Conclusión 

Las pruebas son importantes en el desarrollo de un proyecto, ya que conforme la complejidad del mismo crece, es cada vez más difícil encontrar la fuente de los errores que pueden surgir, además si seguimos algunas prácticas como el TDD podemos asegurarnos de que las características de nuestras aplicaciones funcionan correctamente al momento de ser liberadas y liberarnos de estar buscando y corrigiendo errores que pudieron ser evitados al escribir nuestro código. 

Sin embargo, también existen desarrolladores que optan por escribir  código de la manera más limpia y concisa que se pueda, aplicando las reglas del desarrollo orientado a objetos y siguiendo buenas prácticas de estilo como el Ruby Style Guide y así evitan escribir pruebas. Esto corresponde más a los gustos de cada desarrollador y la manera en la que se trabaja. 


Compartir

Contacto

Alianza 205A interior 4 Jalatlaco, Oaxaca de Juárez, Oaxaca admin@karimnot.com (951) 515-85-56 Lunes a Viernes 9am a 6pm