我有大约20个场景使用相同的整数来指定tableviewcell的行号。产品最近发生了变化,我不得不通过更改行号来更改所有20种场景。目前,我不想为这一行制定具体的步骤,因为我有大约30个不同的行要处理:
我宁愿这样做:
Given /^I am on the page labeled "([^"]+)" on row number (d*)$/ do |page_name, row_number|
steps %Q{
When I scroll down #{row_number} rows in table "LeftMenu"
And I touch the TableViewCell marked "#{page_name}"
}
end
而不是:
Then /^I select specificName$/ do
scroll_down(24)
end
我可以在黄瓜中使用常数吗?类似这样的东西:
const ROW_NUM 24
Then I select "tableViewCellName" at row number ROW_NUM
不能将常量直接传递给步骤定义。但是,如果传递的值与常量匹配,则可以让步骤定义进行检查。
例如,通过以下步骤:
ROW_NUM = 24
Then /I select "tableViewCellName" at row number (.+)/ do |row|
row = (Kernel.const_get row rescue row.to_i)
p row
end
你可以用ROW_NUM"常量"来称呼它:
Then I select "tableViewCellName" at row number ROW_NUM
#=> 24
或者使用特定的行号:
Then I select "tableViewCellName" at row number 1
#=> 1
有几种变通方法,并非所有方法都适合您的
-
您可以将一行的所有测试用例分组为一个大测试用例,然后调用
When I test row 23
-
您可以通过一个步骤将行号保存到变量中
When I prepare to test row 23 And then I do something with the row I am testing Then something is displayed in the row I am testing
-
使用表格
When I test the following rows with data: | 23 | something | something else | | 26 | something | something else | | 28 | something | something else |