Echolot
Командная строка и CI

echolot fake

Создавайте тестовые данные по шаблону в терминале — для фикстур, начальных данных и тел моков — с теми же значениями, что и в маршрутах мока.

echolot fake наполняет шаблон тестовыми данными: именами, адресами электронной почты, адресами, ценами, датами, lorem ipsum и ещё примерно 120 другими значениями. Он использует те же шаблоны, что и тела маршрутов, созданных вручную, так что можно опробовать тело или написать фикстуры и начальные данные для тестов.

echolot fake [<template>] [--file <file>] [--count <count>] [--seed <seed>] [--type <type>]
echolot fake list

Шаблон берётся из аргумента, из --file или из стандартного ввода. Результат идёт в стандартный вывод.

Создание списка

--count превращает шаблон в один элемент списка JSON:

echolot fake '{"id": {{@number}}, "name": "{{$randomFullName}}", "email": "{{$randomEmail}}"}' --count 3
[
{"id": 1, "name": "Henry Adams", "email": "stella.meyer.45@yahoo.com"},
{"id": 2, "name": "Jack Grant", "email": "bianca.ivanova.11@icloud.com"},
{"id": 3, "name": "Theo Sato", "email": "samuel.lee.88@yahoo.com"}
]

С --type xml или --type text элементы идут один за другим:

echolot fake '<city>{{$randomCity}}</city>' --count 2 --type xml
<city>Kyoto</city>
<city>Athens</city>

Шаблон может сам создавать списки с помощью {{#repeat 10}} … {{/repeat}}; см. списки.

Те же данные снова

--seed создаёт одни и те же данные каждый раз — для фикстур, которые не должны меняться от прогона к прогону:

echolot fake --file user.json.template --count 50 --seed 7 > users.json

Экранирование

--type определяет, как экранируются значения: json (по умолчанию) экранирует значения внутри строк JSON, xml экранирует &, <, > и кавычки для XML и HTML, text не экранирует ничего. См. экранирование.

Значения

echolot fake list печатает все значения по группам, с их аргументами:

COMMON
  $randomUUID  A random UUID: 3f2c1e0a-…
  $randomInt(Minimum, Maximum)  A whole number, 0 to 1000 unless bounds are given.
  $randomFloat(Minimum, Maximum, Decimals)  A decimal number between the bounds (0 to 1000), with 2 decimals unless told otherwise.
…

Все они перечислены в динамических значениях. Токены о запросе, такие как {{request.params.id}}, принадлежат маршрутам мока и остаются здесь как написаны.

Параметры

ПараметрЗначение
<template>Шаблон или list, чтобы перечислить тестовые значения.
-f, --file <file>Прочитать шаблон из файла.
-c, --count <count>Создать столько элементов, до 10 000: список JSON или один элемент за другим для --type xml и text.
--seed <seed>Создавать одни и те же данные каждый раз.
--type <type>json (по умолчанию), xml или text.

Коды выхода

0, когда все значения созданы. 1, когда значение создать не удалось, например {{$randomInt(9, 1)}}: причина идёт в стандартный поток ошибок, а токен остаётся в выводе как написан. 64 — при неверном параметре.

На этой странице