Specflow功能中的继承

时间:2012-08-28 10:40:11

标签: c# .net bdd specflow

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

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

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

这可能是在specflow中,还是我走错了路线?请帮忙。感谢,

1 个答案:

答案 0 :(得分:3)

我不能100%确定这是否是正确的选择(读作,我从来不需要做这样的事情)。对我来说,任何继承和重用都来自Step Definitions(或Binding)类。但即便如此......

我不知道你是否可以使用SpecFlow中提供的工具来做到这一点 - 但是我可以看到以下选项(这不是经过测试的理论......我可能会在以后测试它 - 但我认为这可能会给你一个想法...)

  • Feature文件的“代码隐藏”(designer-generate-code)是部分类实现......
  • ...所以我猜你可以创建一个“基础”(通用)特征文件......
  • ...然后为每个特定/实现功能文件的代码隐藏创建一个部分类文件......
  • ...每个分部类都将指定一个基类,它是从“基础”功能文件代码隐藏生成的类名。

希望这有点帮助。

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

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