用多个属性标记步骤定义是否安全
Is it safe to mark step definitions with multiple attributes
我有一系列步骤,我希望能够在我的场景中从多个点调用这些步骤,所以我用所有三个属性标记了它们,如下所示:
[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
}
使用下划线方法名称可能更优雅 - https://specflow.org/documentation/step-definition-styles/ 如果您的正则表达式相同。
我有一系列步骤,我希望能够在我的场景中从多个点调用这些步骤,所以我用所有三个属性标记了它们,如下所示:
[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
}
使用下划线方法名称可能更优雅 - https://specflow.org/documentation/step-definition-styles/ 如果您的正则表达式相同。