黄瓜变换排除黄瓜表

时间:2016-02-22 11:03:56

标签: ruby cucumber

我希望在我的黄瓜框架中进行转换,每当我提供测试测试时,我都应该在我的步骤def中获得test_test。

我写了一个变换如下:

SPACE_TO_UNDERSCORE = Transform /^([^"]* [^"]*)$/ do |string| string.tr!(" ", "_") end

这使我迈出了一步:

And the user selects yes to "dual nationality" on "edit user" details page

And(/^the user selects yes to "([^"]*)" on "([^"]*)" details page$/) do |field,page| # field is now dual_nationality # page is now edit_user end

它有效,但唯一的问题是它还捕获黄瓜表的步骤 在下方并将table转换为table:case_number字符串。如果我不使用转换,则tableCucumber::MultilineArgument::DataTable。很明显,如果表格匹配其内容,则转换会影响表格。

有没有办法在transform中执行此操作,您可以在其中排除表格内容?

When the user loads a url with below case details | case number | | 154745 |

When(/^the user loads a url with below case details$/) do |table| #table => "table:case_number" end

1 个答案:

答案 0 :(得分:0)

我建议不要编写这样的场景步骤并避免转换。您的步骤解释用户说他们是双重国家的'如何'。它没有必要这样做。考虑:

setUp()

当然还有许多其他方法可以说明这一点。

所有这些步骤都不需要转换,也没有正则表达式,可以通过执行类似

的操作轻松实现
Given the user has dual nationality
Given I am a dual national
When the user confirms their dual nationality
When I confirm my dual nationality

假设你有一个dual_national复选框。

一般情况下,每当你在你的场景中详细说明“如何”你做的事情时,你只会让自己更加努力。使用黄瓜时无需使用表格,变换甚至(大多数情况下)正则表达式