Я должен не согласиться с Энди.
Я согласен, что соответствующее тестирование должно проводиться в соответствующее время, и что юнит-тесты (то есть те, которые не взаимодействуют с чем-либо, находящимся за пределами их юнитов) не заменяют все другие формы тестирования.
Но это не обязательно означает, что при правильном разделении вы не можете использовать среду BDD (я тоже не использовал салат) в качестве бегуна для ваших тестов.
Мне также очень нравится тот факт, что синтаксис Gherkin может быть перенесен на бизнес-экспертов, тестировщиков и спонсоров в качестве средства для отслеживания процесса, которому необходимо следовать, поэтому я не вижу причин, почему один набор спецификаций не может быть нацелен на Уровень блока, но другой может быть нацелен на уровень системы и регрессии.
Рассмотрим этот пример (надуманный и явно не достаточно гранулированный)
- Учитывая, что мой тестовый сервер обновлен до последней ночи сборки
- Когда я запускаю свой regressionTestPack1
- Тогда мои результаты регрессии должны соответствовать известным результатам для
regressionTestPack1
Я также не говорю, что это уместно в любом случае. Вы должны оценить, какую выгоду вы получите от такого подхода, если оставить все свои тесты в разных системах. В частности, подумайте, какова база опыта людей, проводящих тестирование.
Так что, если вы пишете небольшой технический проект, как единственный разработчик, и вы предпочитаете этот синтаксис, то нет никаких причин для этого. Просто будьте очень осторожны, вы все еще изолируете свои модульные тесты от системных тестов от своих регрессионных тестов.
Если, однако, вы являетесь частью большой команды разработчиков, тестировщиков, бизнес-аналитиков, то ваше дело должно быть гораздо более сильным и вряд ли будет действительным.