2012-11-23 5 views
3

Michael Hartl의 Ruby on Rails 튜토리얼을 따르고 있는데 third exercise of chapter 5과 관련하여 몇 가지 문제가 있습니다. 나는 책에 하나 지금 바로 선 listing 5.38에 표시 한 utilities.rb으로 정확한 코드로 application_helper_spec.rb을 만들었습니다,하지만 난 테스트 스위트를 실행할 때이 오류가 얻을 :RoR Tutorial Michael Hartl 5.27

C:.../sample_app/spec/helpers/appliaction_helper_spec.rb:1: syntax error, unexpected tIDENTIFIER, expecting $end (SyntaxError) 
desc...ApplicationHelper do 

파일의 첫 번째 줄은 require 'spec_helper'입니다.이 줄을 삭제하면이 오류가 발생하지 않지만 실제로는 이것이 올바른 해결책이라고 생각하지 않습니다. 여기

는 (책과 동일) 파일에서 코드의

require 'spec_helper' 

    describe ApplicationHelper do 

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

     it "should include the base title" 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 

[편집] spec_helper :

# This file is copied to spec/ when you run 'rails generate rspec:install' 
ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'rspec/autorun' 

# Requires supporting ruby files with custom matchers and macros, etc, 
# in spec/support/ and its subdirectories. 
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

RSpec.configure do |config| 
    # ## Mock Framework 
    # 
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: 
    # 
    # config.mock_with :mocha 
    # config.mock_with :flexmock 
    # config.mock_with :rr 

    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    # If you're not using ActiveRecord, or you'd prefer not to run each of your 
    # examples within a transaction, remove the following line or assign false 
    # instead of true. 
    config.use_transactional_fixtures = true 

    # If true, the base class of anonymous controllers will be inferred 
    # automatically. This will be the default behavior in future versions of 
    # rspec-rails. 
    config.infer_base_class_for_anonymous_controllers = false 

    # Run specs in random order to surface order dependencies. If you find an 
    # order dependency and want to debug it, you can fix the order by providing 
    # the seed, which is printed after each run. 
    #  --seed 1234 
    config.order = "random" 
end 

[편집] 당신은이 application_helper.rb

module ApplicationHelper 

    #Returns the full title on a per-page basis. 
    def full_title(page_title) 
    base_title = "Ruby on Rails Tutorial Sample App" 
    if page_title.empty? 
     base_title 
    else 
     "#{base_title} | #{page_title}" 
    end 
    end 
end 
+0

spec_helper는 어떤 모습입니까? – MrDanA

+0

그냥 –

+0

이내어 쓰기 시도 코드로 편집은 '응용 프로그램 ... 여전히 – Thanh

답변

0

파일 이름 오타 :

appliaction_helper_spec.rb => application_helper_spec.rb 
+0

사실, 오류 메시지를 입력 할 때 내 실수였습니다. 파일 이름이 정확합니다. –

+0

오, 코드를 다시 확인해야합니다. – Thanh

관련 문제