语法错误,意外的tIDENTIFIER,期待keyword_end

时间:2012-12-19 19:57:17

标签: ruby-on-rails

我收到语法错误 我的测试代码是

require 'spec_helper'
describe "User pages" do
subject { page }
describe "signup page" do
before { visit signup_path }

it { should have_selector('h1',  text: 'Sign up') }
it { should have_selector('title', text: full_title('Sign up')) }
end

describe "profile page" do
let(:user) { FactoryGirl.create(:user) }

before { visit user_path(user) }
it { should have_selector('h1',  text: user.name) }
it { should have_selector('title',  text: user.name) }
end

describe "signup" do
before { visit signup_path }
let(:submit) { "Create my account" }
describe "with invalid information" do
it "should not create a user" do
expect { click_button submit }.not_to change(User, :count)
end
end
describe "with valid information"  do
before do
fill_in "Name",  with: "Example User"
fill_in "Email"  with: "user@example.com"
fill_in "password" with: "foobar"
fill_in "confirmation" with: "foobar"
end


it "should create a user" do
expect { click_button submit }.to change(User, :count).by(1)
end
end
end


end

和错误日志

/home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load': /home/ritesh/projects/sample_app/spec/requests/user_pages_spec.rb:30: syntax error, unexpected tIDENTIFIER, expecting keyword_end (SyntaxError)
fill_in "Email"  with: "user@example.com"
                     ^
/home/ritesh/projects/sample_app/spec/requests/user_pages_spec.rb:31: syntax error, unexpected tIDENTIFIER, expecting keyword_end
fill_in "password" with: "foobar"
                       ^
/home/ritesh/projects/sample_app/spec/requests/user_pages_spec.rb:32: syntax error, unexpected tIDENTIFIER, expecting keyword_end
fill_in "confirmation" with: "foobar"
                           ^
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `block in load_spec_files'
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `map'
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files'
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:22:in `run'
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
    from /home/ritesh/.rvm/gems/ruby-1.9.3-p327/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `block in autorun'
请帮助我纠正它!!

2 个答案:

答案 0 :(得分:4)

好像你忘记了30号线附近的昏迷......(在"之前:")

答案 1 :(得分:3)

为代码看起来的方式感到自豪会帮助您找到语法问题;在这种情况下,在第一个参数之后的fill_in行中使用逗号。

require 'spec_helper'

describe "User pages" do
  subject { page }

  describe "signup page" do
    before { visit signup_path }

    it { should have_selector('h1',  text: 'Sign up') }
    it { should have_selector('title', text: full_title('Sign up')) }
  end

  describe "profile page" do
    let(:user) { FactoryGirl.create(:user) }
    before { visit user_path(user) }

    it { should have_selector('h1',  text: user.name) }
    it { should have_selector('title',  text: user.name) }
  end

  describe "signup" do
    before { visit signup_path }
    let(:submit) { "Create my account" }

    describe "with invalid information" do
      it "should not create a user" do
        expect { click_button submit }.not_to change(User, :count)
      end
    end

    describe "with valid information"  do
      before do
        fill_in "Name",         with: "Example User"
        fill_in "Email",        with: "user@example.com"
        fill_in "password",     with: "foobar"
        fill_in "confirmation", with: "foobar"
      end

      it "should create a user" do
        expect { click_button submit }.to change(User, :count).by(1)
      end
    end
  end
end