Необязательная таблица в SpecFlow

#c# #automated-tests #coded-ui-tests #specflow #gherkin

#c# #автоматизированные тесты #coded-ui-тесты #specflow #корнишон

Вопрос:

У меня есть шаг в SpecFlow, чтобы проверить, отображается ли какая-либо область (например, информация о пользователе).

 Then "User Info" area is displayed
 

И я хотел бы иметь дополнительную таблицу для этого шага, проверяющую некоторую другую информацию в этой области (например, имя, фамилию, адрес …).

 Then "User Info" area is displayed
| Surname |
| Smith   |
 

Я попытался создать метод с необязательным аргументом:

 public void ThenUserInfoAreaIsDisplayed(Table table = null)
{
  ...
}
 

Но я получил это исключение при использовании шага без таблицы:

Несоответствие количества параметров! Пример метода привязки.Тогда userinfoareaisdisplayed()’ должен иметь 0 параметров

Я также пытался перегрузить метод:

 public void ThenUserInfoAreaIsDisplayed()
{
  ...
}
public void ThenUserInfoAreaIsDisplayed(Table table)
{
  ...
}
 

В этом случае я получаю следующее исключение:

Несоответствие количества параметров! Пример метода привязки.Тогда userinfoareaisdisplayed()’ должен иметь 1 параметр

Есть идеи? Спасибо.

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

1. можете ли вы включить [Then("")] атрибут, который вы прикрепили к своим пошаговым методам

Ответ №1:

Я думаю, что это невозможно именно так, как вы этого хотите. Вы просто могли бы добавить еще одно определение шага для версии с таблицей, используя несколько расширенную / измененную формулировку:

 Then "User Info" area is displayed
 

и

 Then "User Info" area is displayed with this information:
| Surname |
| Smith   |