Specflow — использование того же шага определения для любого ключевого слова

#c# #.net #bdd #specflow

#c# #.net #bdd #specflow

Вопрос:

Как мне использовать определение шага в файле функций, где начальным ключевым словом может быть любое из заданных / 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
}
 

Комментарии:

1. Я считаю, что если вы используете Given , When, То, поскольку они предназначены для использования, редко имеет смысл менять начальное ключевое слово. «Я что-то делаю» будет сопровождаться «Когда»; За «Дано» следует «что-то существует»; за «Тогда» следует «Я что-то наблюдаю»

Ответ №1:

Вы можете поместить несколько атрибутов в один и тот же метод.
Итак, в вашем случае это будет выглядеть так:

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

Если вы хотите, чтобы шаг был для всех 3 частей (задано / Когда / тогда), вы можете использовать StepDefinitionAttribute .

В этом случае это выглядит так:

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

Комментарии:

1. Спасибо за ответ. [StepDefinition(@ меняет правила игры — спасибо.