1

私はRailsとTDDに不慣れで、RspecテストとCucumberテストの間の移行で立ち往生しています。私のRspecテストはすべて緑色に合格しています。

  ModelController
    Find with same attribute
      should call the controller method that performs attribute search
      should select the Search Results template for rendering
      should make the attribute search results available to that template

それで、キュウリの機能に戻ります。

  When I follow "Find Items With Same Attribute"              
  Then I should be on the Similar Items page for "Attribute"

これをビューに含めると、最初のものは緑色になります。

  = link_to "Find Items With Same Attribute"

2つ目は、paths.rbファイルを変更して次のものを含めます。

  when /^the Similar Items page for "(.*)"/
    "/model/search_by_attribute/#{Model.find_by_name($1).attribute}"

そして、それはこのエラーで失敗します

   expected: "/model/search_by_attribute/Attribute"
             got: "/model/1" (using ==) (RSpec::Expectations::ExpectationNotMetError)
      ./features/step_definitions/web_steps.rb:233:in `/^(?:|I )should be on (.+)$/'
      features/search_by_attribute.feature:25:...

model_steps.rbにステップ定義を含めると、別のエラーが発生します。

Ambiguous match of "I should be on the Similar Items page for "Attribute"":

features/step_definitions/model_steps.rb:11:in `/^(?:|I )should be on the (.+) page for "(.*)"$/'
features/step_definitions/web_steps.rb:230:in `/^(?:|I )should be on (.+)$/'

ビューでルートを終了する必要がありますか?あいまいにならないステップ定義を書く必要がありますか?ここから先に進む方法がわかりません。何か提案をいただければ幸いです。

4

1 に答える 1

1

私の推測では、作成したlink_toメソッドを終了する必要があります。Cucumberは高レベルのテストを行うため、そのリンクをクリックしてフォローします。パスを指定していないので、[類似アイテム]ページに移動するのではなく、おそらく現在のページに移動します。

于 2012-06-23T12:29:02.020 に答える