考虑以下黄瓜情景:
Scenario Outline: Execute a template
Given I have a <template>
when I execute the template
Then the result should be successful.
Examples:
| template |
| templateA |
| templateB |
因此,这将使用表中提到的值在场景大纲之上运行。但是这需要我知道我需要提前执行的所有模板并将它们填入表中。有没有办法动态加载模板列表,然后为每个模板执行方案?
无论何时添加新模板,我都不需要更新功能测试。
由于
答案 0 :(得分:1)
是的,将模板列表放在步骤定义中,甚至更好地放在应用程序中。然后你可以写
Scenario: Execute all templates
When I execute all the templates
Then there should get no errors
有趣的是你如何实现这一点。类似的东西:
module TemplateStepHelper
def all_templates
# either list all the templates here, or better still call a method in
# the app to get them
...
end
end
World TemplateStepHelper
When "I execute all the templates" do
@errors = []
all_templates.each do |t|
res = t.execute
@errors << res unless res
end
end
Then "there should be no errors" do
expect(@errors).to be_empty
end
可以修改代码的确切详细信息以满足您的需求。
我建议将代码从步骤defs移到步骤助手中的方法中。
最后,如果您从应用程序中获取模板,则在添加新模板时甚至不必更新功能。