0

Michael Hartl チュートリアルの第 5 章に従っています。ルートディレクトリから以下を実行すると、

$ bundle exec rspec spec/

次のエラーが表示されます。

No DRb server is running. running in local process instead ...
c:/sites/sample_app/spec/helpers/applcation_helper_spec.rb:1:in '<top required>>': uninitialized constant ApplicationHelper (NameError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:746:in 'loud'
.
.

失敗しているファイルを特定する必要があると考えたところ、上記のエラーが発生した 2 つのファイルが見つかりました (残りはテストを実行し、0 の失敗で合格しました)。失敗したものは次のとおりです。

1) spec/helpers/application_helper_spec.rb

describe ApplicationHelper do

  describe "full_title" do
    it "should include the page name" do
      full_title("foo").should =~ /foo/
    end

    it "should include the base name" do
      full_title("foo").should =~ /^Ruby on Rails Tutorial Sample App/
    end

    it "should not include a bar for the home page" do
      full_title("").should_not =~ /\|/
    end
  end
end

2) スペック/サポート/utilities.rb

include ApplicationHelper
4

1 に答える 1

1

いろいろ読んだ後、rspec には spork の実行が必要であることがわかりました (一部のテストでは機能し、他のテストでは機能しない理由がわかりません)。spec_helper を要求するのを忘れていたので、これを application_helper_spec.rb の最初の行に挿入すると、機能しました。

require 'spec_helper'  

これが私を答えに導く投稿です。

于 2012-04-12T15:54:57.963 に答える