想要将rspec添加到我的rails 3应用程序中,我需要做什么?

时间:2010-12-02 02:05:06

标签: ruby-on-rails tdd rspec

我更新了我的GEMFile:

 group :development, :test do

    gem 'rspec'
    gem 'webrat'
    gem 'rspec-rails'
 end

并运行捆绑安装。

现在我已经有了一个HomeController,所以我手动创建了这个:

/spec/controllers/home_controller_spec.rb

我没有关于页面的内容所以我开始测试:

require 'spec_helper'

describe HomeController do

  describe "Get 'about'" do
    it "should be successful" do
      get 'about'
      response.should be_success
    end
  end


end

现在我做了:

rspec spec/

我是否需要更新其他文件才能使rspec正常工作,请不要理解此错误消息。

更新

我改变了if,现在我得到了:

file to load -- spec_helper (LoadError)
    from /Users/someuser/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /Users/someuser/dev/rscs/example.com/spec/controllers/home_controller_spec.rb:1
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/configuration.rb:327:in `load'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/configuration.rb:327:in `load_spec_files'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/configuration.rb:327:in `map'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/configuration.rb:327:in `load_spec_files'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/command_line.rb:18:in `run'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/runner.rb:55:in `run_in_process'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/runner.rb:46:in `run'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/gems/rspec-core-2.2.1/lib/rspec/core/runner.rb:10:in `autorun'
    from /Users/someuser/.rvm/gems/ruby-1.8.7-p302@rails3/bin/rspec:19

1 个答案:

答案 0 :(得分:2)

查看回溯的第一行。

/Users/someuser/dev/rscs/example.com/spec/controllers/home_controller_spec.rb:6: syntax error, unexpected kDO, expecting kTHEN or ':' or '\n' or ';' (SyntaxError)

该错误消息指向您的spec文件中的语法错误 - 即,在第6行,有一个do,它不是预期的。那是你应该先检查的地方。

if "should be successful" do

我认为你的意思是ifit;)it是用于定义要测试的类的特定方面的RSpec方法,它不同于if运算符,可以阻止。