2012-09-06 12 views
37

Qual è il processo per eseguire TDD in Ruby con RSpec senza Rails?Come usare RSpec senza Rails?

Ho bisogno di un Gemfile? Ha solo bisogno di rspec in esso?

Rubino 1.9.3

+0

mi piacerebbe pensare che è più o meno lo stesso come, senza, come non c'è alcun collegamento diretto tra rotaie e RSpec. – Cubic

+2

tutorial di vimeo qui: http://blog.codeship.com/install-rspec-tutorial/ – Rimian

+0

È un po 'difficile da vedere dall'intestazione della pagina e dal titolo del video, ma sembra che sia per Rails e sia Progetti Ruby senza binari. –

risposta

58

Il processo è il seguente:

Installare la gemma RSpec dalla console:

gem install rspec 

quindi creare una cartella (noi assegniamo il nome root) con il seguente contenuto:

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 

Poi nella corsa console

rspec spec/my_model_spec.rb 

voilà!

39

Da all'interno della directory dei progetti ...

gem install rspec 
rspec --init 

quindi scrivere le specifiche nella directory specifica creata e gestita tramite

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

I flussi di lavoro in tutto gem install rspec sono errate. Utilizzare sempre Bundler e Gemfile per garantire la coerenza ed evitare situazioni in cui un progetto funziona correttamente su un computer ma fallisce su un altro.

Crea il tuo Gemfile:

source 'https://rubygems.org/' 

gem 'rspec' 

poi eseguire:

gem install bundler 
bundle install 
bundle exec rspec --init 

È possibile che questo creerà .rspec e spec/spec_helpers.rb per voi.

Ora crea il tuo esempio spec in spec/example_spec.rb:

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

Ed eseguire le specifiche:

% bundle exec rspec 
. 

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