1

私は cucumber を初めて使用します。このコード (エラーは含まれていません) を完全に削除する方法を教えてください。

when /^the user page$/
  users_path

when /^the review page$/
  reviews_path

私は次のような正規表現を使用しようとしました

when /^the (.+) page$/
  $1.to_s+'s_path'

しかし、明らかにそれは間違っています。前もって感謝します!

解決策(aledalgrandeによる回答に基づく):

when /^the (.+) page$/ 
 send("#{$1}s_path")
4

2 に答える 2

1

これは機能するはずです:

When /^the "(.+)" page$/ do |destination|
  send("#{destination}s_path")
end
于 2013-03-05T15:20:37.693 に答える
1

あなたは付け加えられます:

機能/サポート/paths.rb

module PathHelpers
  def path_to(page_name)
    case page_name
    when /user/i
      users_path
    when /review/i
      reviews_path
    when /home/i
      root_path
    #add custom here
    else
      raise "Can't find mapping from \"#{page_name}\" to a path."
    end
  end
end

World(PathHelpers)

そしてそれを呼び出します:

when /^the (.+) page$/ do |page|
  visit path_to(page)
end
于 2013-03-04T15:27:57.950 に答える