NAME
Test::BDD::Cucumber::Definitions::Struct::Ru - Шаги на русском языке для работы с perl-структурами данных
SYNOPSIS
В файле features/step_definitions/struct_steps.pl:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use open qw(:std :utf8);
use Test::BDD::Cucumber::Definitions::HTTP::Ru;
use Test::BDD::Cucumber::Definitions::Struct::Ru;
В файле features/struct.feature:
Feature: Struct (Ru)
Работа с perl-структурами данных
Scenario: HTTP->JSON->Struct
When HTTP-запрос "GET" отправлен на "https://fastapi.metacpan.org/v1/distribution/Test-BDD-Cucumber-Definitions"
When содержимое HTTP-ответа прочитано как JSON
Then элемент структуры данных "$.name" совпадает с "Test-BDD-Cucumber-Definitions"
ИСТОЧНИКИ ДАННЫХ
Данные могут быть загружены в структуру из различных источников данных.
Для работы с источниками требуется использование модуля Struct совместно с другими модулями, например HTTP.
ШАГИ
Чтение данных
Прочитать JSON из HTTP-ответа в perl-структуру:
When содержимое HTTP-ответа прочитано как JSON
Прочитать список файлов Zip-архива в perl-структуру
When перечень файлов Zip-архива прочитан как список
Проверка данных
Для обращения к произвольным элементам структуры данных используется JSON::Path.
Проверить элемент на точное соответствие значению:
Then элемент структуры данных "$.status" равен "success"
Проверить массив структур на наличие элемента, точно соответствующего значению:
Then массив структур данных "$[*]" содержит элемент, равный "user_42"
Проверить элемент на совпадение с регулярным выражением:
Then элемент структуры данных "$.name" совпадает с "Test-*"
Проверить массив структур на наличие элемента, совпадающего с регулярным выражением:
Then массив структур данных "$[*]" содержит элемент, совпадающий с ".+42"
Проверить количество элементов в массиве структур данных:
Then массив структур данных "$[*]" содержит "1" элемент
Then массив структур данных "$[*]" содержит "4" элемента
Then массив структур данных "$[*]" содержит "6" элементов
AUTHOR
Mikhail Ivanov <m.ivanych@gmail.com>
LICENSE AND COPYRIGHT
Copyright 2018 Mikhail Ivanov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.