2011-07-16 10 views
0

HartlのRuby On Railsチュートリアルの機能を少し変更しようとしています。新しい統合テストから完全に不思議なエラーが発生しています。Hartlの変更で統合テストが失敗するsample_app

これは申し込みページにあります。ユーザー名、電子メール、パスワードのフィールドの代わりに、私は電子メールと質問フィールドしか持っていません。フォームは名前が変更されたフィールドを除いて同じです(暗号化されていない電子メールの場合はbaremailフィールドを使用しています - データベースの電子メールアドレスを暗号化します)。ルート設定は同じです(一致する '/ signup'、:to => 'users#new')。

は、ここで指定/要求/ users_spec.rbファイルの関連部分です:

require 'spec_helper' 

describe "Users" do 

    describe "signup" do 

    describe "failure" do 
     it "should not accept a bogus email" do 
     lambda do 
      visit signup_path 
      fill_in "Question",  :with => "" 
      fill_in :baremail,  :with => " bogus email" 
      click_button 
      response.should render_template('users/new') 
      response.should have_selector("div#error_explanation") 
     end.should_not change(User, :count) 
     end 

     it "should not accept a question without an email" do 
     lambda do 
      visit signup_path 
      fill_in :question,  :with => "What, me worry?" 
      fill_in :baremail,  :with => "" 
      click_button 
      response.should render_template('users/new') 
      response.should have_selector("div#error_explanation") 
     end.should_not change(User, :count) 
     end 

(。これらの二つのテストはFILL_INための2つの異なるプロトコルを使用していることに注意してください)

は、ここで私は応答して何を得るのです:

1) Users signup failure should not accept a bogus email 
    Failure/Error: fill_in "Question",  :with => "" 
    Nokogiri::CSS::SyntaxError: 
     unexpected '(' after 'DESCENDANT_SELECTOR' 
    # ./spec/requests/users_spec.rb:11:in `block (5 levels) in <top (required)>' 
    # ./spec/requests/users_spec.rb:9:in `block (4 levels) in <top (required)>' 

    2) Users signup failure should not accept a question without an email 
    Failure/Error: fill_in :question,  :with => "What, me worry?" 
    Nokogiri::CSS::SyntaxError: 
     unexpected '(' after 'DESCENDANT_SELECTOR' 
    # ./spec/requests/users_spec.rb:22:in `block (5 levels) in <top (required)>' 
    # ./spec/requests/users_spec.rb:20:in `block (4 levels) in <top (required)> 

...など。 Signup_pathを文字列で置き換えようとしましたが(signup_pathが定義されていない場合)、効果はありません。私はRspecファイルの:questionと:email行を入れ替えました。どちらか最初にエラーが発生します。

ところで、ページは正常に動作します。それは失敗しているテストだけです。

無知の手がかりはありますか?

+0

通常の機能のように見える奇妙な方法。 – sevenseacat

答えて

0

編集:私は間違っていると判明し、fill_inは記号を取る。元の投稿は以下です。

:baremailと:質問記号を文字列に変更するとどうなりますか?私が知る限り、fill_inは記号を取りません。

+0

そうです。私は文字列と記号の両方でそれを試しましたが、diffはありません。 –

関連する問題