Al igual que muchos desarrolladores de Ruby, la idea de tener que probar mi código envió escalofríos a mi hechizo. No solo no tenía ni idea acerca de las pruebas de software (es decir, las regulaciones, etc.), sino que nunca antes había usado RSpec.

Afortunadamente, cuando comencé a usar el sistema, las cosas se volvieron mucho más simples.

RSpec es un marco de prueba para Ruby y Rails. El sistema es extremadamente versátil y está pensado para proporcionar un marco simple para probar varias características dentro de aplicaciones o complementos.

El sistema funciona de la manera más intuitiva posible, lo que significa que cada “prueba” está diseñada para proporcionar un resultado esperado, lo que permite al desarrollador crear una visión general efectiva de las diversas funcionalidades de un sistema, además de brindar la posibilidad de ampliar el alcance según sea necesario.

Explicaré cómo funciona en este post …

¿Qué es RSpec?

RSpec es una “gema” de código abierto para Ruby, mantenida por el grupo principal de Ruby.

La gema está disponible en Github, junto con una serie de otros, especialmente la gema “rspec-rails” (que fue diseñada específicamente para Rails).

La gema básicamente proporciona a los desarrolladores un “marco” al que se puede llamar mediante el comando “rspec”. Esto permite la integración con suites CI, como TravisCI y CoverAlls.

El objetivo de tener los gustos de RSpec es facilitar la creación de “pruebas unitarias” y “pruebas de integración”, que son un elemento básico de la línea de desarrollo de software tradicional.

Una de las razones por las cuales el ecosistema de Ruby es considerado tan alto es tener la capacidad de probar una aplicación de Ruby a fondo y de manera extensiva, con un marco ubicuo y extensible como el lenguaje en sí mismo.

Por primera vez, sin la necesidad de un software costoso o una gran integración de IDE, los equipos de desarrolladores pueden crear un software que funcione en todas las plataformas y conjuntos de tecnología.

Por lo tanto, al considerar el desarrollo en Ruby, el valor subyacente de RSpec no puede ser exagerado.

Cómo funciona

RSpec debe inicializarse dentro de un complemento / aplicación.

Normalmente vive en el directorio de “especificaciones”, pero esto también puede ser “prueba”.

Para inicializar RSpec, como la mayoría de las cosas en Ruby, es mejor seguir las pautas de lo que ya se ha desarrollado, utilizando el comando CLI “rspec –init”.

Al inicializar el marco, se completa la carpeta / spec con un archivo “spec_helper.rb” y se rellena con una cantidad básica de opciones de configuración.

El archivo “spec_helper.rb” se encuentra en el núcleo de todas las funciones de RSpec y, por lo tanto, es extremadamente importante.

Dentro del archivo, se almacenan todos los ajustes de configuración de una aplicación. Aquí es donde debe incluir los diversos archivos necesarios para integrar el conjunto de pruebas en su script / aplicación.

Si puede ejecutar el comando “rspec –init” (después de agregar “rspec” al archivo Gem de su script), se configurará para comenzar el siguiente paso.

Configurándolo

Después de configurar el “ayudante de especificaciones”, el siguiente paso es obtener los diversos elementos del conjunto de integración llamado.

Este es un cierto proceso manual y, especialmente si se usa Rails, puede implicar algunos pasos fuera del manual de reglas “tradicional”.

El paso más importante en este caso es configurar la aplicación Rails “ficticia”.

No voy a entrar en demasiados detalles, pero es necesario si está creando una gema de rieles (por ejemplo), y no es algo que se pueda hacer directamente a través de rspec.

Para hacer esto, necesitas básicamente crear un “motor” falso desde el cual puedes extraer la aplicación de Rails ficticia:

  cd some_path_where_your_engine_IS_NOT 

plugin de rieles nuevo YOUR_ENGINE_NAME –mountable –dummy-path = spec / dummy –skip-test-unit

  mv YOUR_ENGINE_NAME / spec / dummy / real / path / to / YOUR_ENGINE_NAME / spec 

rm -rf YOUR_ENGINE_NAME

Esto crea una carpeta / spec con una aplicación de Rails ficticia, spec_helper.rb y otro archivo que no es importante.

Al hacer lo anterior se asegura que RSpec esté configurado correctamente para los rieles.

Nuevamente, sin tener los detalles de su aplicación específica, si necesita más información, puede enviarme un correo electrónico (correo electrónico en el perfil).

Realizando pruebas

Una vez que haya configurado rspec, debe ordenar las pruebas.

Este es un proceso confiablemente simple: solo toma un tiempo averiguar los diversos métodos a través de los cuales puede determinar resultados particulares.

Lo más importante que se debe indicar es que hay varios tipos de pruebas diferentes:

  • Pruebas de enrutamiento
  • Pruebas de control
  • Pruebas de modelo
  • Pruebas de características
  • Ver pruebas
  • Pruebas de correo

Hay dos formas de asegurarse de que funcionen: ya sea creando carpetas dentro de la carpeta principal / spec (/ spec / models o / spec / features, etc.) O simplemente use la opción “type :: feature” cuando declare las pruebas.

La forma en que esto funciona se vuelve más clara cuando se considera cómo funcionan realmente las pruebas.

Cada “prueba” en RSpec debe estar envuelta en un bloque “describir”. Cada archivo debe extraerse de la clase RSpec propiamente dicha (RSpec.describe ___), pero todos los demás solo pueden ser “descritos”:

# spec / models / model_spec.rb

RSpec.describe Modelo do

describe “tiene método de correo electrónico” hacer

eso {___}

fin

fin

La forma en que creas tus pruebas es con el método “it”, que se utiliza para describir (lo más detalladamente posible) lo que cada función debe hacer.

Dentro del bloque “it”, puede usar varios métodos diferentes, que van desde “esperar” a “debería”, para proporcionar al sistema la capacidad de determinar los resultados particulares requeridos del script / aplicación.

Desde aquí, puede crear marcadores de posición en contexto, utilizando métodos como “dejar” para proporcionar contexto para cada prueba.

Si bien podría escribir más pruebas, la conclusión es que esto debería darle una visión general sólida de lo que se requiere para que todo funcione. Después de esto, solo necesita poder escribir tantas pruebas como sea necesario.

Dejar respuesta

Please enter your comment!
Please enter your name here