我们可以使用"或"在bdd场景中

时间:2014-06-05 07:59:21

标签: .net bdd specflow

Given I have a request \**8  
And   I create the following  match strength String in the \***  
|position    | Input String                                    |  
| 3 & 4      |  "NM" or "H1" or "S1" or "S2" or "L1" or "L2"   |  
| 9 to 13    | "Delphi Score"                                  |  
When I execute request ***

我不确定我是否可以编写这样的场景,我需要在3&中传递不同的值4位置?让我知道如何在同一位置传递不同的值?

由于 DR

2 个答案:

答案 0 :(得分:2)

简短的回答是:

使用多种方案

长版:

您尝试遵循的流程有时称为示例规范。如果您对此有所了解,您将看到目标是使用涵盖足够不同代码路径的合理数量的示例来测试您的方案。准确的测试次数取决于您,但它应该小于全套测试,因为覆盖每一次测试都太费时间。相反,您正在寻找合理的商业案例,帮助您实现软件运行的最终目标。

现在我们选择Specflow,因为它主要用于业务领域,即我们用英语描述事物,而不是低级代码。我建议您的示例语言水平远远低于适合Specflow的语言级别,并且您的方案非常长且详细。

如果您有能力,请尝试将您的方案重新调整一个级别。想一想S113代表并隐藏Specflow中的详细信息。

Given I have a new request to match series one delphi scores
When I execute my request
...

如果您不能这样做,那么只需为这些关键示例提供多种方案

Scenario: match S1 deplhi scores
  ...
Scenario: match NM delphi scores
  ...

答案 1 :(得分:1)

你不能在Specflow中做你想要的,我不相信。但是您可以将场景更改为scenario outline并执行以下操作:

Scenario Outline:  
Given I have a '<request>'  
And   I create the following  match strength String in <position> with input string '<input string>'  
When I execute the '<request>'
Then I get result <result>
Scenarios:
|Request         |position    | Input String   |  result |
| "some request" | 3          |  "NM"          |  true   |
| "some request" | 4          |  "NM"          |  false  |
| "some request" | 3          |  "HI"          |  true   |
| "some request" | 3          |  "HI"          |  true   |

等等

由于我对您的域名的理解不够充分,因此很难具体说明