Primeros pasos con rspec

Un ejemplo sencillo de RSpec

En greetinger.rb (donde sea que vaya en su proyecto):

class Greeter
  def greet
    "Hello, world!"
  end
end

En spec/greeter_spec.rb:

require_relative '../greeter.rb'

RSpec.describe Greeter do
  describe '#greet' do
    it "says hello" do
      expect(Greeter.new.greet).to eq("Hello, world!")
    end
  end
end

Entonces nuestra estructura de archivos se ve así:

$ tree .
.
├── greeter.rb
└── spec
    └── greeter_spec.rb

1 directory, 2 files

Producción

$rspec greeter_spec.rb
Finished in 0.00063 seconds (files took 0.06514 seconds to load)
1 example, 0 failures

En la terminología RSpec, el archivo es una “especificación” de Greeter y el bloque it es un “ejemplo”. La línea con esperar es una expectativa. Si se cumple la expectativa, no pasa nada y pasa la prueba. Si no, la prueba falla.

Este ejemplo también muestra que los bloques describir se pueden anidar, en este caso para transmitir que el método saludar es parte de la clase Saludar. El # en #greet es solo una convención para mostrar que greet es un método de instancia (a diferencia de ‘.’ para un método de clase). RSpec no interpreta la cadena en absoluto, por lo que podría usar una cadena diferente u omitir ese bloque describe por completo.

Instalación de RSpec

La forma más común de instalar la gema RSpec es usando Bundler. Agregue esta línea al Gemfile de su aplicación:

gem 'rspec'

Y luego ejecuta bundle para instalar las dependencias:

$ bundle

Alternativamente, puede instalar la gema manualmente:

$ gem install rspec

Después de instalar la gema, ejecute el siguiente comando:

rspec --init

Esto creará una carpeta spec para sus pruebas, junto con los siguientes archivos de configuración:

  • un directorio spec en el que poner archivos de especificaciones
  • un archivo spec/spec_helper.rb con opciones de configuración predeterminadas
  • un archivo .rspec con indicadores de línea de comandos predeterminados