【问题标题】:What is the difference between Scenario and Scenario outline?Scenario 和 Scenario outline 有什么区别?
【发布时间】:2021-10-17 18:46:06
【问题描述】:

我一直在从不同的资源中阅读场景和场景大纲之间的区别,但我能找到的任何地方都是 ' 场景使用单个值,您可以使用场景大纲为多个示例运行相同的场景。

但实际上,我没有看到这种差异。即使我有多个示例,我也可以毫无问题地使用 Scenario 和 Scenario Outline。

有人能告诉我最近版本的 Specflow 是否允许这样做吗? Scenario 和 Scenario Outline 之间有什么实际区别吗?

我使用的 Specflow 版本是:3.1.89

【问题讨论】:

    标签: c# bdd specflow scenarios


    【解决方案1】:

    场景大纲是一个模板。相关场景的步骤是一样的,但是对于不同的数据,系统的行为可能会有所不同。考虑以下示例:

    Scenario Outline:
    Given the system is up and running
    When the user provides value <TestData>
    Then the system should display <ExpectedResult>
    
    Examples:
    |TestData| ExpectedResult     |
    |True    | Operation failed   |
    |False   | Operation succeeded|
    

    如果没有场景大纲,您将不得不准备以下场景:

    Scenario:
    Given the system is up and running
    When the user provides value True    
    Then the system should display Operation failed
    
    Scenario:
    Given the system is up and running
    When the user provides value False   
    Then the system should display Operation succeeded
    

    【讨论】:

    • 嗨@Piotr,感谢您的解释。但是,我的意思是我可以交替使用 Scenario 和 Scenario Outline。例如-我可以在您的第一个示例中使用场景而不是场景大纲,而不会出现任何问题。并行运行这些测试也没有问题。场景:假设系统启动并运行当用户提供值 那么系统应该显示 示例:|TestData|预期结果 | |真|操作失败 | |错误 |操作成功|
    • 如果是这样,SpwcFlow 的实现比我想象的要聪明。那么,问题是什么? 'Scenario Outline' 是 Gherkin 规范的一部分,使用它可以让你的测试更具可读性——你的意图更清晰。
    • 我只是想了解一下,场景和场景大纲之间是否真的有任何区别。这就是这个问题的原因。 :)
    • 语义差异。正如我所说 - SpecFlow 实现比它应该的更聪明,并且可以处理“场景”,例如“场景大纲”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2016-08-11
    相关资源
    最近更新 更多