2

我正在寻找一种在 specflow 功能中实现继承的方法。例如,具有必须测试的常见场景的基本要素类。

3-4 个派生特征类,它们继承了基类中的所有场景并添加了一些自己的场景。同样,Binding 类也将遵循继承结构。这是测试具有基本控制器(基本功能类中的场景)和 4-5 个实现的 ASP.NET MVC 应用程序所必需的。

我可以为每个派生的控制器类复制功能文件,但这会导致大量重复。

这在specflow中是否可行,还是我走错了路?请帮忙。谢谢,

4

1 回答 1

3

我不是 100% 确定这是否是正确的道路(读作,我从来不需要做这样的事情)。对我来说,任何继承和重用都来自步骤定义(或绑定)类。但即便如此...

我不知道您是否可以使用 SpecFlow 中提供的工具简单地做到这一点 - 但据我所知,您有以下选项(这不是一个经过验证的理论......我可能会稍后测试它 - 但我想这可能会为您提供一个想法...)

  • 您的功能文件的“代码隐藏”(设计器生成代码)是部分类实现......
  • ...所以我想您可以创建一个“基本”(通用)功能文件...
  • ...然后为您的每个特定/实现功能文件的代码隐藏创建一个部分类文件...
  • ...每个部分类将指定一个基类,它是从“基本”功能文件代码隐藏生成的类名。

希望这会有所帮助。

编辑:好的,我已经测试了这个理论......它会像我上面描述的那样工作。我刚刚创建了一个带有关联测试/规范项目的新项目,并在测试/规范项目中进行了上述操作。测试运行器运行基本功能,然后运行特定/实现功能......再次包含基本功能。

试一试 - 只需不到 5 分钟即可完成我的建议,看看结果是否符合您的要求。

于 2012-08-28T16:19:49.050 回答