2012-09-06 22 views
37

¿Cuál es el proceso para hacer TDD en Ruby con RSpec sin Rails?¿Cómo usar RSpec sin rieles?

¿Necesito un Gemfile? ¿Necesita solo rspec?

de Ruby 1.9.3

+0

Me asumir que es más o menos lo mismo que fuera, ya que no hay conexión directa entre los carriles y rspec. – Cubic

+2

vimeo tutorial aquí: http://blog.codeship.com/install-rspec-tutorial/ – Rimian

+0

Es un poco difícil de ver desde el título de la página y el título del video, pero esto parece ser tanto para Rails como para Proyectos de Ruby sin rieles. –

Respuesta

58

El proceso es el siguiente:

Instalar la gema rspec desde la consola:

gem install rspec 

A continuación, cree una carpeta (vamos a nombramos raíz) con el siguiente contenido:

root/my_model.rb

root/spec/my_m odel_spec.rb

#my_model.rb 
class MyModel 
    def the_truth 
    true 
    end 
end 

#spec/my_model_spec.rb 

require_relative '../my_model' 

describe MyModel do 
    it "should be true" do 
    MyModel.new.the_truth.should be_true 
    end 
end 

Luego, en la consola de ejecución

rspec spec/my_model_spec.rb 

listo!

39

Desde dentro de su directorio de proyectos ...

gem install rspec 
rspec --init 

luego escribir las especificaciones en el directorio spec creado y ejecutarlos a través de

rspec 'path to spec' # or just rspec to run them all 
1

Los flujos de trabajo de todo gem install rspec son erróneas. Utilice siempre Bundler y Gemfile para garantizar la coherencia y evitar situaciones en las que un proyecto funcione correctamente en una computadora pero falle en otra.

Cree su Gemfile:

source 'https://rubygems.org/' 

gem 'rspec' 

luego ejecutar:

gem install bundler 
bundle install 
bundle exec rspec --init 

El anterior creará .rspec y spec/spec_helpers.rb para usted.

Ahora cree sus especificaciones ejemplo, en spec/example_spec.rb:

describe 'ExampleSpec' do 
    it 'is true' do 
    expect(true).to be true 
    end 
end 

Y ejecutar las especificaciones:

% bundle exec rspec 
. 

Finished in 0.00325 seconds (files took 0.09777 seconds to load) 
1 example, 0 failures 
Cuestiones relacionadas