RSpec - Introducción
RSpec es un marco de prueba unitario para el lenguaje de programación Ruby. RSpec es diferente de los marcos tradicionales de xUnit como JUnit porque RSpec es una herramienta de desarrollo impulsada por el comportamiento. Lo que esto significa es que las pruebas escritas en RSpec se centran en el "comportamiento" de una aplicación que se está probando. RSpec no pone énfasis en cómo funciona la aplicación, sino en cómo se comporta, en otras palabras, qué hace realmente la aplicación.
Entorno RSpec
Primero que nada, necesitará instalar Ruby en su computadora. Sin embargo, si aún no lo ha hecho antes, puede descargar e instalar Ruby desde el sitio web principal de Ruby: Ruby .
Si está instalando Ruby en Windows, debería tener el instalador de Ruby para Windows aquí en - http://www.rubyinstaller.org
Para este tutorial, solo necesitará un editor de texto, como el Bloc de notas y una consola de línea de comandos. Los ejemplos aquí usarán cmd.exe en Windows.
Para ejecutar cmd.exe, simplemente haga clic en el menú Inicio y escriba "cmd.exe", luego presione la tecla Retorno.
En el símbolo del sistema en la ventana de cmd.exe, escriba el siguiente comando para ver qué versión de Ruby está utilizando:
ruby -v
Debería ver el resultado a continuación que se parece a esto:
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
Los ejemplos de este tutorial usarán Ruby 2.2.3 pero cualquier versión de Ruby superior a 2.0.0 será suficiente. A continuación, necesitamos instalar la gema RSpec para su instalación de Ruby. Una gema es una biblioteca Ruby que puede usar en su propio código. Para instalar una gema, debe utilizar elgem mando.
Instalemos la gema Rspec ahora. Regrese a su ventana cmd.exe y escriba lo siguiente:
gem install rspec
Debería tener una lista de gemas dependientes que se instalaron, estas son gemas que la gema rspec necesita para funcionar correctamente. Al final de la salida, debería ver algo parecido a esto:
Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
rspec-expectations, rspec-core, rspec after 22 seconds
6 gems installed
No se preocupe, si su salida no se ve exactamente igual. Además, si está utilizando una computadora Mac o Linux, es posible que deba ejecutargem install rspec comando usando sudo o use una herramienta como HomeBrew o RVM para instalar la gema rspec.
Hello World
Para comenzar, creemos un directorio (carpeta) para almacenar nuestros archivos RSpec. En su ventana de cmd.exe, escriba lo siguiente:
cd \
Luego escribe -
mkdir rspec_tutorial
Y finalmente, escriba -
cd rspec_tutorial
Desde aquí, crearemos otro directorio llamado spec, hazlo escribiendo -
mkdir spec
Vamos a almacenar nuestros archivos RSpec en esta carpeta. Los archivos RSpec se conocen como "especificaciones". Si esto le parece confuso, puede pensar en un archivo de especificaciones como un archivo de prueba. RSpec utiliza el término "especificación", que es una forma abreviada de "especificación".
Dado que RSpec es una herramienta de prueba BDD, el objetivo es centrarse en lo que hace la aplicación y si sigue o no una especificación. En el desarrollo impulsado por el comportamiento, la especificación a menudo se describe en términos de una "Historia de usuario". RSpec está diseñado para dejar claro si el código de destino se está comportando correctamente, en otras palabras, siguiendo la especificación.
Regresemos a nuestro código Hello World. Abra un editor de texto y agregue el siguiente código:
class HelloWorld
def say_hello
"Hello World!"
end
end
describe HelloWorld do
context “When testing the HelloWorld class” do
it "should say 'Hello World' when we call the say_hello method" do
hw = HelloWorld.new
message = hw.say_hello
expect(message).to eq "Hello World!"
end
end
end
A continuación, guarde esto en un archivo llamado hello_world_spec.rb en la carpeta de especificaciones que creó anteriormente. Ahora, de vuelta en la ventana de cmd.exe, ejecute este comando:
rspec spec spec\hello_world_spec.rb
Cuando se complete el comando, debería ver un resultado similar a este:
Finished in 0.002 seconds (files took 0.11101 seconds to load)
1 example, 0 failures
¡Felicitaciones, acaba de crear y ejecutar su primera prueba de unidad RSpec!
En la siguiente sección, continuaremos discutiendo la sintaxis de los archivos RSpec.