Это выглядит как очень техническое определение вашей проблемы, а не как результат разговора с кем-то из вашего бизнес-отдела. Хотя ничто не мешает вам проводить модульное тестирование с использованием стиля Спецификация на примере, на самом деле он не предназначен для этого. Огурец должен быть естественным языковым представлением проблемного пространства, и, как и в случае с английским языком, я обнаружил, что он борется с более точными определениями, такими как двоеточие меньше, чем пользователь, например, точка com больше, чем эм>.
Вы можете просто изменить свои определения привязки, чтобы сделать их немного более расслабленными.
Вместо того, чтобы использовать
[Given("I have sent (.*)")]
public void IHaveSent(string line)
{
DoSomethingWith(line);
}
Пытаться
[Given("I have sent mail from (.*)")]
public void IHaveSentMailFrom(string email)
{
DoSomethingWith(string.Format("MAIL FROM:<{0}>");
}
Так становится больше похоже
Given I have sent mail from [email protected]
Однако вы получите гораздо большую пользу, если определите пример более полно. Вместо [email protected] давайте назовем его Биллом и определим (вне корнишона), что, по нашему мнению, пытается сделать Билл. Например. Билл может пытаться реализовать действительные сценарии, в то время как Тед может пробовать фиктивные.
Given I have an email from Bill
When I get a receipt
Then it should be valid
Given I have an email from Ted
When I get a receipt
Then it should be bogus
person
AlSki
schedule
07.02.2013