0

Ruby on Rails アプリをテストすると、奇妙なキュウリのバグが発生します。私はlocalhostで完全に機能する機能を持っています。いくつかのシナリオで、特定のページ、特に users#show のテンプレートにいるかどうかを確認するいくつかの手順があります。そのため、ステップ定義を作成し、paths.rb にパスを追加して、そのようなステップの最初のパスを取得することができました。ただし、まったく同じパスを使用しているにもかかわらず、他のステップは失敗します。これは、レイズで確認した事実です。

手順は次のとおりです。

シナリオ 3 から: パス

Then I should be on the "jadams" profile page

シナリオ 2 から: 失敗

And I am on the "testuser" profile page

シナリオ 3 から: 失敗

And I go to the "testuser" profile page

彼らが使用するステップ定義は次のとおりです。

Then /^(?:|I )should be on (.+)$/ do |page_name|
  visit path_to(page_name)
end

When /^(?:|I )go to (.+)$/ do |page_name|
  visit path_to(page_name)
end

そして、私が定義したパス:

when /^the "([^\"]*)" profile page$/i
  user_path(User.find_by_username($1))

それらがすべてこのパスに到達し、ユーザーが見つかり、ID があることを確認しました。私も/users/1直接使ってみました。それでも私はこれを取得します:

No route matches {:action=>"show", :controller=>"users", :id=>nil}

これらのステップの 1 つが成功し、他のステップが成功しない理由を誰でも理解できますか? ありがとう!

4

1 に答える 1