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.