1

我有大约 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

谢谢

4

2 回答 2

2

您不能将常量直接传递给步骤定义。但是,您可以让步骤定义检查传递的值是否与常量匹配。

例如,使用以下步骤:

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
于 2013-08-02T16:50:00.887 回答
2

有几种解决方法,并非所有方法都适合您的情况

  1. 您可以将一行的所有测试用例分组为一个大测试用例,然后调用

    When I test row 23

  2. 您可以有一个步骤将行号保存到变量中

    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

  3. 使用表格

    When I test the following rows with data:
      | 23 | something | something else |
      | 26 | something | something else | 
      | 28 | something | something else |  

于 2013-08-13T09:39:20.713 回答