我希望在我的黄瓜框架中进行转换,每当我提供测试测试时,我都应该在我的步骤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
字符串。如果我不使用转换,则table
为Cucumber::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
答案 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复选框。
一般情况下,每当你在你的场景中详细说明“如何”你做的事情时,你只会让自己更加努力。使用黄瓜时无需使用表格,变换甚至(大多数情况下)正则表达式