使用SpecFlow创建Rowtests

时间:2012-05-28 08:28:35

标签: specflow rowtest

我正在尝试使用SpecFlow和Microsoft内置的测试框架创建行测试,这些内容如下:

Scenario Outline: Test Calculator
  Given I have entered <x> into the calculator
  And I have entered <y> into the calculator
  When I press add
  Then the result should be <result> on the screen

Examples:
  | x | y | result|
  | 1 | 2 | 3|
  | 2 | 2 | 4|

我面临的问题是,在Scenario Outline中的任何步骤中,将为Examples表中的每个值自动生成单独的步骤方法。我希望能够为每个步骤实现一个接收输入值作为参数的通用方法,但它似乎不起作用。

2 个答案:

答案 0 :(得分:2)

最后它看起来像预期的那样工作,我缺少的是输入参数占位符的引用:

Scenario Outline: Test Calculator
  Given I have entered "<x>" into the calculator
  And I have entered "<y>" into the calculator
  When I press add
  Then the result should be "<result>" on the screen

Examples:
  | x | y | result|
  | 1 | 2 | 3|
  | 2 | 2 | 4|

答案 1 :(得分:0)

我在VS 2012中遇到了同样的问题。我认为它可能是SpecFlow的一个错误,因为当我将场景大纲更改为仅仅是一个场景时,它会正确生成所有内容。所有文档都说你不应该用引号括住占位符。

简而言之,我的解决方案是将其更改为方案以生成步骤。但不要忘记,您必须将其更改回Scenario Outline进行编译。这对我有用。