我是黄瓜的新手,我正在尝试找到定义功能的最佳方法。
我需要以多种语言测试网站,因此我要测试的功能始终相同,但语言不同,我需要在页面中查找的文本可能会有所不同。这大致是我想要做的:
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 |
我没有在功能描述本身中指定类别值,因为:
- 我希望能够从我的数据库中读取类别,所以每当我添加/删除一个我不需要修改测试本身
- 想象一下,在同一个特征文件中有 10 个国家和 20 个类别......这将是一团糟
- 为了避免 2 我可以为每个国家/地区创建一个功能文件...但是我必须复制并粘贴 N 次相同的功能描述
我考虑过从另一个步骤调用一个步骤作为解决方案。类似于以下伪代码:
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
我不确定这是最好的解决方案。大多数人也不赞成从步骤中调用步骤。我个人也不喜欢它,因为我不喜欢混淆步骤和特征定义的想法。