Код файла функции Specflow - определение данных С#

Я создал файл функций с несколькими функциями. В моих файлах функций мой Given и When всегда одинаковы, только мой then отличается, поскольку я тестирую разные показатели вывода. Стоит ли иметь только один код для моих Given и When и один код для моего Then, чтобы проверять все выходные показатели за один раз.

Если это то, что возможно, как я могу это сделать?

Пример:

Given Interface is generated
When batch is executed
Then transfer measure is generated

Given Interface is generated
When batch is executed
Then allocation measure is generated

person J OpenDock    schedule 29.05.2018    source источник
comment
Можете ли вы опубликовать пример того, что вы сделали и чего вы хотите достичь?   -  person Hagashen Naidu    schedule 29.05.2018
comment
Вы можете иметь несколько then или один then с параметрами или таблицами данных   -  person Murthi    schedule 29.05.2018


Ответы (2)


Обычно лучше хранить Given и When отдельно, чтобы ваши функции лучше читались.

В вашем случае лучше всего использовать Scenario Outline, а не Scenario. Это позволяет вам использовать токенизированную таблицу для утверждения нескольких разных результатов при одних и тех же начальных шагах:

Scenario Outline: Batch execution works correctly
    Given  Interface is generated
    When batch is executed
    Then <measure_type> is generated
Examples: 
    | measure_type       |
    | transfer measure   |
    | allocation measure |

На ваших шагах у вас будут отдельные методы, утверждающие, что правильный measure type был сгенерирован:

[Then(@"transfer measure is generated")]
public void ThenTransferMeasureIsGenerated()
{
    // your assertion logic here
}
person Ivan Petkov    schedule 29.05.2018

Для ваших примеров

Создан данный интерфейс

Когда пакет выполняется

Затем создается трансфертная мера

Создан данный интерфейс

Когда пакет выполняется

Затем генерируется мера распределения

Вы можете использовать таблицу и изменить ее следующим образом:

Given Interface is generated    
When batch is executed   
Then '<val>' measure is generated    
Examples:    
|val|    
|transfer|    
|allocation|

Это создаст один шаг Then

person Hagashen Naidu    schedule 29.05.2018