1

私はrspec、rspec-rails、cucumber、webratを使用してレールに取り組んでいます。私はBDDとテスト全般を学ぼうとしています。私はこのようなキュウリのシナリオを持っています:

  Scenario: Questions List
    Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
    When I go to the experiment page for quiz titled "Pearl Jam"
    Then I should see "Corduroy"
    And I should see "Dissident" 

クイズを正しく作成して保存する手順1を追加しました(プットでテストしました)。現在、ステップ2に取り組んでいます。paths.rbに新しいパスを追加しています

when /^the experiment page for quiz titled "(.*)"$/i 
  new_quiz_experiment_path(Quiz.find_by_title($1))  

何らかの理由find_by_titleで動作しません。このエラーメッセージが表示されます:

new_quiz_experiment_url failed to generate from {:quiz_id=>nil, :action=>"new", :controller=>"experiments"}, expected: {:action=>"new", :controller=>"experiments"}, diff: {:quiz_id=>nil} (ActionController::RoutingError) 

レコードがそこにあり、正しく保存されていると確信しています。挿入すれば

puts Quiz.find(1).title

「パールジャム」が出ます。キュウリで生成されたファイルに次の例が含まれているため、機能していないように見えfind_byます。これは非常に奇妙です。

  #   when /^(.*)'s profile page$/i
  #     user_profile_path(User.find_by_login($1))     

また、条件を使用して最初に簡単な検索を試しましたが、どちらも機能しません。

何か案が?

よろしくお願いします、
Davide

4

1 に答える 1

1

ryanbの提案のおかげで、バグを見つけることができました。

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"

基本的に、私はこのステップを一貫して解析していませんでした。最初の正規表現に引用符を挿入したので、タイルは次のように保存されました

"Pearl Jam"

私は2つのことを怠ったと思います:

  • ステップ定義の引用符に注意してください
  • !より表現力豊かなエラーメッセージを表示するには、メソッドを追加で使用します。
于 2009-08-20T06:24:51.483 に答える