2014-06-22 2 views
0

Lorsque j'essaie d'exécuter rspec, je reçois le message d'erreur ci-dessous lors de l'exécution de la commande bundle exec rspec spec/models/user_spec.rb. J'ai recherché des problèmes similaires et j'ai vu des suggestions pour entrer dans les chemins exacts et m'assurer que j'étais dans le répertoire racine. Aucun n'a travaillé. De plus, j'ai essayé d'exécuter une installation groupée. Je m'excuse si c'est une question rudimentaire. Je suis un noob total. Merci d'avance pour l'aide.Pourquoi RSpec signale-t-il une erreur de syntaxe dans cette spécification?

/Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load':  /Users/sethjones/rails_projects/sample_app/spec/models/user_spec.rb:6: syntax error, unexpected '}', expecting => (SyntaxError) 

/Users/sethjones/rails_projects/sample_app/spec/models/user_spec.rb:20: syntax error, unexpected end-of-input, expecting keyword_end 

     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files' 
     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each' 
     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files' 
     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run' 
     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run' 
     from /Users/sethjones/.rvm/gems/ruby-2.0.0-p481/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun' 

Mon Gemfile est la suivante:

source 'https://rubygems.org' 
ruby '2.0.0' 
gem 'rails', '4.0.5' 
gem 'bootstrap-sass', '2.3.2.0' 
gem 'sprockets', '2.11.0' 
gem 'bcrypt-ruby', '3.1.2' 
gem 'faker', '1.1.2' 
gem 'will_paginate', '3.0.4' 
gem 'bootstrap-will_paginate', '0.0.9' 
group :development, :test do 
gem 'sqlite3', '1.3.8' 
gem 'rspec-rails', '2.13.1' 
# The following optional lines are part of the advanced setup. # gem ’guard-rspec’, ’2.5.0’ 
# gem ’spork-rails’, ’4.0.0’ 
# gem ’guard-spork’, ’1.5.0’ 
# gem ’childprocess’, ’0.3.6’ 
end 
group :test do 
gem 'selenium-webdriver', '2.35.1' 
gem 'capybara', '2.1.0' 
gem 'factory_girl_rails', '4.2.0' 
gem 'cucumber-rails', '1.4.0', :require => false 
gem 'database_cleaner', github: 'bmabey/database_cleaner' 
gem 'growl', '1.0.3' 

# Uncomment these lines on Linux. 
# gem ’libnotify’, ’0.8.0'gem i 

# Uncomment these lines on Windows. 
# gem ’rb-notifu’, ’0.0.4’ 
# gem ’wdm’, ’0.1.0’ 
end 
gem 'sass-rails', '4.0.1' 
gem 'uglifier', '2.1.1' 
gem 'coffee-rails', '4.0.1' 
gem 'jquery-rails', '3.0.4' 
gem 'turbolinks', '1.1.1' 
gem 'jbuilder', '1.0.2' 
group :doc do 
gem 'sdoc', '0.3.20', require: false 
end 
group :production do 
gem 'pg', '0.15.1' 
gem 'rails_12factor', '0.0.2' 
end 

Et mon fichier user_spec.rb ressemble à ceci:

require 'spec_helper' 

describe User do 

before do 
    { @user = User.new(name: "Example User", email: "[email protected]") } 
    end 

    subject { @user } 

    it { should respond_to(:name) } 
    it { should respond_to(:email) } 

    it { should be_valid } 

    describe "when name is not present" do 
    before { @user.name = " "} 
    it { should_not be_valid } 
    end 
end 

Merci encore!

Répondre

1

Le bloc que vous passez à before est entouré à la fois de do/end et d'accolades. Puisque les curlies ne suivent pas une invocation de méthode, Ruby les interprète comme un hachage, et attend un => avant la fermeture bouclée. Il suffit d'enlever les boucles.

+0

Merci. C'est ce qu'il a fait. J'apprécie votre temps. – user3700231

Questions connexes