SpecFlow - повторить тест X раз со списком? - PullRequest
4 голосов
/ 05 марта 2012
Scenario: Change a member to ABC 60 days before anniversary date
    Given Repeat When+Then for each of the following IDs:
    | ID         |
    | 0047619101 |
    | 0080762602 |
    | 0186741901 |
    | 0311285102 |
    | 0570130101 |
    | 0725968201 |
    | 0780265749 |
    | 0780265750 |
    | 0780951340 |
    | 0780962551 |
#-----------------------------------------------------------------------
    When these events occur:
    | WorkflowEventType   | WorkflowEntryPoint |
    | ABC                 | Status Change      | 
    Then these commands are executed:
    | command name      |
    | TerminateWorkflow |
    And For Member, the following documents were queued:
    | Name       |
    | ABC Packet |

В приведенном выше сценарии я хотел бы:

  • ПОДАРОК ​​ - Поиск 10 членов из БД
  • WHEN + THEN - Выполните эти шаги 10 раз, по одному разу для каждой записи.

Возможно ли это с SpecFlow?
Если да, как бы вы его настроили?

TIA

1 Ответ

6 голосов
/ 05 марта 2012

Это на самом деле довольно легко сделать, хотя документация требует небольшого поиска.

То, что вам нужно, - это набросок сценария, например:

Scenario Outline: Change a member to ABC 60 days before anniversary date
Given I have <memberId>
When these events occur:
    | WorkflowEventType   | WorkflowEntryPoint |
    | ABC                 | Status Change      | 
Then these commands are executed:
    | command name      |
    | TerminateWorkflow |
And For <memberId>, the following documents were queued:
    | Name       |
    | ABC Packet |

Examples: 
    | memberId   |
    | 0047619101 |
    | 0080762602 |
    | 0186741901 |
    | ...etc...  |

Это выполнит вашсценарий один раз для каждого идентификатора в таблице примеров.При необходимости вы можете расширить таблицу до нескольких столбцов.

Или, проще, (если у вас действительно есть только одна строка в каждой из приведенных выше примеров таблиц)

Scenario Outline: Change a member to ABC 60 days before anniversary date
Given I have <memberId>
When A 'ABC' Event Occurs with EntryPoint 'Status Change'
Then a TerminateWorkflow command is executed
And For <memberId>, the 'ABC Packet' document was queued

Examples: 
    | memberId   |
    | ...etc...  |

Для болееинформацию смотрите в specflow-wiki на github и в синтаксисе cucumber для контуров сценария

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...