我们将步骤定义分组为抽象基类。
但是我注意到以下警告:
无效绑定:抽象绑定类型只能有静态绑定 方法
据我所知,此警告是在BindingSourceProcessor.cs
中创建的测试似乎工作正常,这是值得关注的吗?这个警告的目的是什么?
答案 0 :(得分:1)
我知道这不能直接回答你的问题,但我会质疑抽象步骤绑定类的好处。
Specflow step bindings are global(除非您具体do something to make them non global - 但请参阅该页面上的警告)。 Specflow将扫描所有类,查找属于[Binding]
属性的类,并尝试将特征文件中的步骤定义与绑定类中的属性步骤方法进行匹配。
因此,包含步骤定义的抽象类在共享步骤定义时不太有意义,无论它们是否通过类继承继承。
如果您使用抽象类访问字段以便可以在步骤之间共享状态,那么您可以使用Specflows ScenarioContext字典,或者更好(IMHO),使用context injection feature来确保共享上下文被注入到步骤定义类中以在步骤之间共享状态,即使这些步骤是在不同的类中定义的。