У меня есть несколько тестов specflow, которые выглядят примерно так:
Scenario: Person is new and needs an email
Given a person
And the person does not exist in the repository
When I run the new user batch job
Then the person should be sent an email
Scenario: Person is not new and needs an email
Given a person
And the person does exist in the repository
When I run the new user batch job
Then the person should not be sent an email
За исключением двух сценариев, у меня есть 10 очень похожих сценариев, все с типом шагов, так чтоЯ хочу использовать «Схему сценария».К сожалению, мне очень трудно придумать читабельный способ переписать мои шаги.
В настоящее время я придумал это, но выглядит неуклюже:
Scenario: Email batch job is run
Given a person
And the person '<personDoes/NotExist>' exist in the repository
When I run the new user batch job
Then the person '<personShould/NotGetEmail>' be sent an email
Examples:
| !notes | personDoes/NotExist | personShould/NotGetEmail |
| Exists | does not | should |
| No Exist | does | should not |
Я также обдумал это, и хотя он чище, он почти не передает значения
Scenario: Email batch job is run
Given a person
And the person does exist in the repository (is '<personExist>')
When I run the new user batch job
Then the person should be sent an email (is '<sendEmail>')
Examples:
| !notes | personExist | sendEmail |
| Exists | false | true |
| No Exist | does | false |
Есть ли у кого-нибудь лучший способ параметризации таких понятий, как "делает", "не", "должен"," не должен "," имеет "," не имеет "?На данный момент я думаю о том, чтобы оставить все как другой сценарий, потому что он более читабелен.