Methods 使用多个属性标记步骤定义是否安全

Methods 使用多个属性标记步骤定义是否安全,methods,specflow,Methods,Specflow,我有一系列的步骤,我希望能够从场景中的多个点调用这些步骤,所以我用这三个属性对它们进行了标记,如下所示: [Given(@"I am logged in")] [When(@"I am logged in")] [Then(@"I am logged in")] public void GivenIAmLoggedIn() { ... some code ... } 现在,到目前为止,我还没有看到这样做的失败,但它安全吗?我是在做假设,还是应该复制这些方法?(我认为幕后的某些事情会在以

我有一系列的步骤,我希望能够从场景中的多个点调用这些步骤,所以我用这三个属性对它们进行了标记,如下所示:

[Given(@"I am logged in")]
[When(@"I am logged in")]
[Then(@"I am logged in")]
public void GivenIAmLoggedIn()
{
    ... some code ...
}

现在,到目前为止,我还没有看到这样做的失败,但它安全吗?我是在做假设,还是应该复制这些方法?(我认为幕后的某些事情会在以后发生冲突……)

我已经这样做了两年,数百个场景和步骤,只遇到了一个问题,我无法直接与具有多个属性相关(尽管确实如此)。像本例一样,将动作和断言作为同一代码有点奇怪,但我可以理解为什么您可能会使用它。我有一些是这样的:

[Given(@"I am a logged-in (.*) customer")]
[Given(@"I have successfully logged in")]
[Given(@"I am on the post login page")]
[When(@"I'm logged in")]
[Then(@"I can successfully log in")]

 public void GivenIAmLoggedIn(string customer = 'normal')
 {
    --SomeCode
 }
如果您的正则表达式相同,则使用下划线方法名称可能更为方便