# Test-BDD-Cucumber-Definitions [](https://travis-ci.org/ivanych/Test-BDD-Cucumber-Definitions)
ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ ÑˆÐ°Ð³Ð¾Ð² Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñтиле Cucumber на Ñзыке Perl.
# Шаги
Шаги могут быть напиÑаны на разных Ñзыках. Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ ÐµÑть шаги на двух Ñзыках:
* In - Internal (внутренний пÑевдо-Ñзык)
* Ru - РуÑÑкий
# ОпределениÑ
ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²Ñех имеющихÑÑ ÑˆÐ°Ð³Ð¾Ð² напиÑаны как отдельные функции. Ðто позволÑет легко Ñоздавать новые шаги,
иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð´Ð»Ñ Ñтого готовые определениÑ. Ðовые шаги проÑто ÑобираютÑÑ Ð¸Ð· готовых определений как конÑтруктор.
ДопуÑтим, еÑть шаг:
When запрошена Ñтраница 'http://metacpan.org'
и его определение:
get_page('http://metacpan.org');
ЕÑть второй шаг:
Then Ñтраница загрузилаÑÑŒ уÑпешно
и его определение:
check_code(200);
Теперь можно легко Ñоздать новый шаг:
Given загружена Ñтраница 'http//metacpan.org'
проÑто объединив два определениÑ:
get_page('http://metacpan.org');
check_code(200);
# Модули
ДиÑтрибутив Ñодержит неÑколько модулей Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ протоколами и данными.
## HTTP
Модуль Ñодержит функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð²ÐµÐ±-реÑурÑами по протоколу HTTP.
## Struct
Модуль Ñодержит функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ perl-Ñтруктурами данных.
## Zip
Модуль Ñодержит функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ð¼Ð¸ Zip