【发布时间】:2014-07-30 18:25:53
【问题描述】:
我们将步骤定义分组到抽象基类中。
但是我注意到以下警告:
无效绑定:抽象绑定类型只能有静态绑定 方法
据我所知,此警告是在 BindingSourceProcessor.cs 中创建的
测试似乎工作正常,这是需要关注的问题吗?这个警告的目的是什么?
【问题讨论】:
-
略过,但是为您的步骤绑定提供抽象类的目的是什么?这对您有什么好处?
-
好问题,我们正在使用抽象基类来组织在一组功能中使用的步骤绑定并拉入 ScenarioContext。然后一个给定的特征文件有一个标签,它的具体步骤在一个文件中并继承了通用步骤。绑定类还继承自设置通用 mvc 控制器位和 moq 位的基类。
-
@AlexKay 看到我的回答。使用继承可能有充分的理由,但根据您的描述,最好将 mvc 控制器和 moq 的设置移动到从
[BeforeScenario]标记方法调用的特定设置类中(cxan 是它自己的,非继承类,仍然会被调用)。通用步骤仍然可以在它们自己的[Binding]类中,特定步骤可以再次在它们自己的特定步骤类中。即使没有继承,specflow 也会找到所有步骤。 -
感谢 Sam 关于使用 BeforeScenario 的好点子,我们正在使用 BeforeScenario 和层次结构的每个“层”,每个人都在做相应的设置。你知道它们是否是使用抽象类/继承的后果吗?因为它看起来像是一个相对较新的添加,例如“转到声明”似乎不起作用。
-
是的,我不确定使用抽象类/继承的后果。如果我是你,我会测试如果我在不同的、非继承的、步骤定义类中有多个
[BeforeScenario]方法会发生什么。他们都被召唤了吗?如果他们这样做了,那么您也许可以完全取消继承。
标签: specflow