我正在尝试使用 SpecFlow 和 Microsoft 内置测试框架创建行测试,这些内容如下:
场景大纲:测试计算器 鉴于我已在计算器中输入 <x> 我已经在计算器中输入了 <y> 当我按添加 那么结果应该是屏幕上的 <result> 例子: | x | 是 | 结果| | 1 | 2 | 3| | 2 | 2 | 4|
我面临的问题是,给定方案大纲中的任何步骤,都会为示例表中的每个值自动生成一个单独的步骤方法。我希望能够为每个步骤实现一个接收输入值作为参数的通用方法,但它似乎不起作用。
最后,它看起来像预期的那样工作,我缺少的是输入参数占位符周围的引号:
场景大纲:测试计算器 鉴于我在计算器中输入了“<x>” 我已经在计算器中输入了“<y>” 当我按添加 那么结果应该是屏幕上的“<result>” 例子: | x | 是 | 结果| | 1 | 2 | 3| | 2 | 2 | 4|
我在 VS 2012 中遇到了同样的问题。我认为这可能是 SpecFlow 的一个错误,因为当我将 Scenario Outline 更改为仅是一个 Scenario 时,它会正确生成所有内容。所有文档都说您不必将占位符括在引号中。
简而言之,我的解决方案是将其更改为 Scenario 以生成步骤。但别忘了,你必须把它改回 Scenario Outline 才能编译。这对我有用。