Cucumber 关于路径的definition
I go to the edit movie page for "Alien"
主要为了能够通用
When /^(?:|I )go to (.+)$/ do |page_name| visit path_to(page_name)end def path_to(page_name) case page_name when /^the home\s?page$/ '/' when /^the (.*)\s?page for (.*)\s?$/ page_name.scan /^the (.*)\s?page for "(.*)"$/ path_components = $1.split(/\s+/) page_name =~ /^the (.*)\s?page for "(.*)"$/ params = $2 debugger self.send(path_components.push('path').join('_').to_sym, Movie.find_by_title(params)) # Add more mappings here. # Here is an example that pulls values out of the Regexp: # # when /^(.*)'s profile page$/i # user_profile_path(User.find_by_login($1)) else begin page_name =~ /^the (.*) page/ path_components = $1.split(/\s+/) self.send(path_components.push('path').join('_').to_sym) rescue NoMethodError, ArgumentError raise "Can't find mapping from \"#{page_name}\" to a path.\n" + "Now, go and add a mapping in #{__FILE__}" end end end