【问题标题】:Handling/Passing multiple parameters from feature file in gherkin处理/传递来自小黄瓜功能文件的多个参数
【发布时间】:2016-01-04 18:36:40
【问题描述】:

如何使用功能传递多个参数。

我知道“示例:”概念的用法,但它在某种程度上使功能文件更加复杂和不可读

例子:

Scenario Outline: To verify that default value for some timeout when invalid/remove is set for some timeout parameter

When <parameterA> is <action> with <parameterB> for <someOtherParameterPair> in <fileName>
Then <parameterA> is updated with value <parameterB> for <someOtherParameterPair> in <fileName> as per defined <action>
Examples:
|parameterA  |parameterB  |action|someOtherParameterPair|fileNameWithSectionName|
|oneParameter|twoParameter|update|key:Value             |abc.config:appSettings |
|oneParameter|twoParameter|delete|key:Value             |def.config:appSettings |

在这里,我有大约 7 个来自测试用例的参数(由于限制,我尝试将它们包含在 5 个参数中)

我会在步骤定义文件中使用拆分将“someOtherParameterPair”和“fileNameWithSectionName”分成两部分。所以我总共有大约 7 个参数将在测试用例中使用。

但我不确定从 Given/When/Then 语句中接受如此大量的参数是否可行。这也使我的测试用例不可读。

在上述场景中,我正在尝试修改位于特定位置的 *.config 文件中的一些参数(我从功能文件传递,以便我的 When/Then 语句可以修改)。

之后我需要执行测试用例。

以同样的方式,我的测试套件中还有其他(大部分)案例。

请帮助我是 BDD 正确的方法。 BDD 是否会在维护中产生一些问题,因为我看到了很多东西(几乎所有东西都来自)功能文件。

【问题讨论】:

    标签: c# automation bdd acceptance-testing gherkin


    【解决方案1】:

    答案是不要这样写你的特性。不要用你的特征来描述how你正在测试什么,用它来解释what你正在测试,why你正在测试它

    一般来说,这意味着您不需要使用示例,当然您也永远不需要使用现有的复杂示例。您始终可以将示例的使用降低到较低级别,例如步骤定义。

    在这种情况下,您似乎应该编写一个单元测试。在这个场景中没有描述任何商业价值。

    BDD 是关于描述行为并使用它来推动开发的。写完之后就不能用它来测试了!!

    【讨论】:

    • @@diabolist ..但我的场景就像我需要修改 *.config 文件中的一些参数,然后在 UI 上执行然后再次在 *.config 中执行一些其他参数,然后执行等等。 .. 以类似的方式,我有各种测试场景,我需要修改不同的配置文件 3 到 4 次,然后检查 UI 上的行为它是一种单元测试副本,但我怎样才能将它包含到 BDD 中
    • 如果我不使用示例并尝试单独更新每个场景的 *.config,那么我需要为每个单独的测试用例编写单独的 configModiication 函数(场景的 3-4 排列和组合) ) 并且这将导致相同的函数堆栈,这些函数执行相同的操作但具有不同的参数.......此外,命名具有相同功能的此类函数也将是一项任务。
    • 您应该使用单元测试工具来完成这样的工作。 BDD 并不是真正的测试它更多的是关于协作和推动开发。您似乎在使用一个非常慢的工具来进行大量密集的低级测试。你会发现这类测试的执行时间很长,而且工具不支持你正在做的工作。这不是因为工具不好,而是因为您在这项特定工作中使用了错误的工具。
    • 我知道。无能为力..要求的方式无法更改工具:)..无论如何,谢谢
    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多