我是黄瓜新手,我正在努力找到定义功能的最佳方式。
我需要用多种语言测试网站,因此我想要测试的功能总是相同的,但是我需要在页面中查找的文本可能会有所不同。这大致是我想做的事情:
Scenario Outline: Browse through category from the home page
Given I am on the <country> home page
When I browse categories
Then I should get the browse category page
Examples:
| country |
| UK |
| IT |
| US |
我没有在功能描述中指定类别值,因为:
我想过从另一个步骤作为解决方案的一步。类似下面的伪代码:
When /^I browse categories$/ do
on CURRENT_HOME_PAGE do |page|
page.categories_list.each do |category|
....visit category page....
....call "Then I should get the browse category page" step...
....go back to CURRENT_HOME_PAGE....
end
end
end
我不确定这是最好的解决方案。大多数人也不赞成从步骤中调用步骤。我个人也不喜欢它,因为我不喜欢混合步骤和功能定义的想法。
答案 0 :(得分:0)
如何调用ruby方法而不是步骤定义并使用Cucumber实例变量?
我的意思是这样的:
Given /^I am on the (\w+) home page$/ do |country|
@country = country # use Cucumber instance variable (it will be available in next steps of this scenario)
end
When /^I browse categories$/ do
# read expected categories from DB for @country
# visit Browse Categories page for @country
# check that correct categories are shown
expected_categories.each do |category|
# visit category page
# check that correct category page for @country is shown
end
end