在黄瓜中使用常量



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

有几种变通方法,并非所有方法都适合您的

  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 |  

相关内容

  • 没有找到相关文章