在 Ruby/Capybara 案例语句中使用正则表达式会引发"正则表达式匹配 0 参数"错误



我正在使用Cucumber/Selenium Web-Driver&Capybara我正在尝试在我的Step_definition中构建案例陈述,以便我在网站上没有多个"给出"。

我有以下内容:

Given /^I am on the .+ page$/ do |page_name|
  case page_name
  when "I am on the home page"
   visit ('/')
  else
    puts "page #{page_name} not found"
  end 
end

当我在终端运行cucumber以运行测试时,我会得到

给定我在主页上#功能/step_definitions/home_page.rb:3 您的块采用1个参数,但是REGEXP匹配0个参数。(cucumber :: glue :: aritymismatcherror( 功能/step_definitions/home_page.rb:3:在/^I am on the .+ page$/' features/homepage.feature:5:in中,我在主页上'

我已经尝试将正则拨号包装在((,{},[],",',''以及这些组合中,我已经检查了我的代码的凹痕,我 think think 这是正确的。

我已经把我的正则态度放到在线验证器上,它可以很好地拾取。

您的块正在采用参数page_name,但是您的正则置于其中没有捕获组作为该参数。您可能想要

之类的东西
Given /^I am on the (.+) page$/ do |page_name|

因此,.+部分被捕获并通过page_name

通过

最新更新