0

このような機能のシナリオがあります

Scenario: can't find similar movies if we don't know director (sad path)
Given I am on the details page for "Alien"
Then  I should not see "Ridley Scott"
When  I follow "Find Movies With Same Director"
Then  I should be on the home page
Then   I should see "'Alien' has no director info"

find_by_same_director という名前の「Find Movies With Same Director」のコントローラー アクションと、同じ名前のビュー テンプレートがありますが、映画に似たような映画がホームページに表示される監督がない場合は、コントローラー アクションで行います。この上..

def find_by_same_director
 m = Movie.find params[:id]
 @similar_movies = m.similar_movies
 if @similar_movies.count == 0
   flash[:notice] = "#{m.title} has no director info"
   render :index
 end
end

そして、paths.rb の path_to メソッドには、このように「ホームページ」のケースがあります

when /^the home\s?page$/
  movies_path

ステップを通過するには、ホームページにいる必要があります。何をすればよいですか? ありがとう

4

1 に答える 1

0

個人的には、ホームページパスREに「^」と「$」が固定されていないため、これらをドロップします。

「それなら私はホームページにいるはずです」はweb_steps.rbでピックアップされ、そこでステップを見つける必要があります。具体的には、次の手順を実行します。

Then /^(?:|I )should be on (.+)$/ do |page_name|
  current_path = URI.parse(current_url).path                                                                                                                                                                                               
  if current_path.respond_to? :should                                                                                                                                                                                                      
    current_path.should == path_to(page_name)                                                                                                                                                                                              
  else                                                                                                                                                                                                                                     
    assert_equal path_to(page_name), current_path                                                                                                                                                                                          
  end                                                                                                                                                                                                                                      
end

また、文字列内または文字列の後のスペースに注意する必要があります。(Given / When / Thenと文字列の先頭の間のスペースは重要ではありません。)

于 2012-08-26T02:02:50.670 に答える