我正在尝试重用 SpecFlow 步骤来测试两个类似的 UI 组件。目前我的解决方案有一个通用基类,其中包含共享步骤和两个子类以包含所有剩余步骤,如下所示:
[Binding]
public class ChildSteps1 : BaseSteps<MyType1>
{
...
[When(@"I do action one")]
public void WhenIDoActionOne()
{
...
}
...
}
public class BaseSteps<T>
where T : ...
{
...
[When(@"I do action two")]
public void WhenIDoActionTwo()
{
...
}
...
}
我遇到的问题是通用类中的步骤(例如,本例中的“动作二”)没有突出显示或无法从 .feature 文件中导航(文本为紫色,我无法通过按 F12 跳转到定义)。通常这可以通过向基类添加“[Binding]”属性来解决,但我的基类是通用的,添加此属性会导致运行时异常。有没有解决这个问题的干净方法?