【问题标题】:Specflow - Using the same step def for any keywordSpecflow - 对任何关键字使用相同的步骤 def
【发布时间】:2021-05-26 07:33:01
【问题描述】:

如何在起始关键字可以是 Given/When/Then 的任何一个功能文件中使用步骤定义

示例:

功能文件

Given I do something
When I do something else
Then blah blah
And I do something else

如何只编写 1 步定义来处理 2 x“我做其他事情”。据我现在所知,我必须编写 2 个相同的步骤定义来处理这个

目前我必须在 Step Def 文件中执行此操作

[When(@"I do something else"]
public blah()
{
do something
}

[Then(@"I do something else"]
public blah2()
{
do something
}

【问题讨论】:

  • 我相信如果你使用 Given、When、Then,因为它们的用途是,交换起始关键字几乎没有意义。 “我做某事”将与“何时”一起使用; “给定”之后是“某物存在”; “那么”之后是“我观察到某事”

标签: c# .net bdd specflow


【解决方案1】:

您可以将多个属性放在同一个方法上。
所以在你的情况下,它看起来像这样:

[When(@"I do something else"]
[Then(@"I do something else"]
public void blah()
{
// do something
}

如果您希望一个步骤适用于所有 3 个部分(Given/When/Then),您可以使用StepDefinitionAttribute

在这种情况下,它看起来像这样:

[StepDefinition(@"I do something else"]
public void blah()
{
// do something
}

【讨论】:

  • 感谢您的回复。 [StepDefinition(@ 改变了游戏规则 - 谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多