1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kkk001-mockj

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект mockj

Проект mockj — это инструмент для генерации фиктивных данных, Java-реализация mockjs. Он также имеет встроенную функцию случайного создания объекта.

Зависимость от Maven

<dependency>
  <groupId>com.github.kevin-wang001</groupId>
  <artifactId>mockj</artifactId>
  <version>1.0</version>
</dependency>

Инструкция по использованию

Шаблон данных состоит из трёх частей: имя свойства, правило генерации и значение свойства:

Имя свойства | Правило генерации: Значение свойства

name | rule: value

// Имя свойства — name // Правило генерации — rule // Значение свойства — value

Обратите внимание:

  • Имя свойства и правило генерации разделяются вертикальной чертой |.
  • Правило генерации является необязательным.

Существует 7 форматов правила генерации:

'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value

Значение свойства может содержать символ @ в качестве заполнителя. Также оно определяет начальное значение и тип конечного значения.

Правила генерации и примеры

1. Значение свойства является строкой String

  • 'name|min-max': string

Строка string повторяется для создания новой строки, количество повторений находится в диапазоне от min до max.

  • 'name|count': string

Строка string повторяется для создания новой строки, количество повторений равно count.

2. Значение свойства является числом Number

  • 'name|+1': number

К значению number добавляется 1.

  • 'name|min-max': number

Создаётся целое число, которое больше или равно min и меньше или равно max. Значение number используется только для определения типа.

  • 'name|min-max.dmin-dmax': number

Создаётся число с плавающей точкой, целая часть которого больше или равна min и меньше или равна max, а дробная часть содержит dmin до dmax знаков после запятой.

Пример: Mock.mock("{ "number1|1-100.1-10": 1, "number2|123.1-10": 1, "number3|123.3": 1, "number4|123.10": 1.123 }") // => { "number1": 12.92, "number2": 123.51, "number3": 123.777, "number4": 123.1231091814 }

  • «name|+1»: 100 — к значению 100 добавляется 1;
  • «name|-1»: 100 — из значения 100 вычитается 1;
  • «name|1-100»: 100 — создаётся целое число в диапазоне от 1 до 100, значение 100 используется только для определения типа;
  • «name|1-100.1-10»: 100 — создаётся число с плавающей точкой, целая часть которого находится в диапазоне от 1 до 100, а дробная часть — от 1 до 10 знаков после запятой.

3. Значение свойства является логическим значением Boolean

  • 'name|1': boolean

Случайным образом генерируется логическое значение, вероятность true равна 1/2, вероятность false также равна 1/2.

4. Значение свойства является объектом Object

  • 'name|count': object

Из значения object случайным образом выбирается count свойств.

  • 'name|min-max': object

Из значения object случайным образом выбираются min–max свойств.

5. Значение свойства является массивом Array

  • 'name|1': array

Из массива array случайным образом выбирается один элемент, который становится конечным значением.

  • 'name|+1': array

Из массива array последовательно выбирается один элемент, который становится конечным значением.

  • 'name|min-max': array

Массив array повторяется для создания нового массива, количество повторов находится в диапазоне от min до max.

  • 'name|count': array

Массив array повторяется для создания нового массива, количество повторов равно count. ``` { "age": 6120, "boy": false, "courses": ["数学", "语文"], "courses2": ["数学", "语文"], "endDate": 1537525215493, "flag": "h", "foo": { "age": 8, "boy": false, "flag": "", "name": "wangwu", "next": 0 }, "foo1": { "age": 8, "boy": false, "flag": "", "name": "wangwu", "next": 0 }, "map": { "110000": "北京市", "120000": "天津市", "130000": "河北省", "140000": "山西省" }, "name": "rdmo", "next": 7825, "point": 11937, "startDate": 1537525215494 }

// 提供反射接口,随机产生一个对象

Такая схема поддерживает более разнообразные типы данных. Например:

Foo.class // String 类型 private String name; // char 类型 private char flag; // числовой тип private int age; private int next; private Double point; // boolean 类型 private boolean boy; // date 类型 private Date startDate; private Date endDate; // collection 类型 private List courses; private Set courses2; // map 类型 private Map<String, String> map; // Object 类型 private Foo foo; private Foo foo1;

Через API: Foo foo = MockR.random(new TypeReference() {}); можно получить следующие данные:

{ "age": -61382, "boy": true, "courses": [ "hSer" ], "courses2": [ "eatH" ], "endDate": 1537524456497, "flag": "£", "foo": { "age": 34475, "boy": false, "courses": [ "BTvW" ], "courses2": [ "mFWP" ], "endDate": 1537524456497, "flag": "c", "map": { "YUJl": "IVvP" }, "name": "JyAL", "next": -23634, "point": -96035, "startDate": 1537524456497 }, "foo1": { "age": -98010, "boy": false, "courses": [ "spTD" ], "courses2": [ "WcQX" ], "endDate": 1537524456498, "flag": "4", "map": { "ueYR": "ANbU" }, "name": "XhFe", "next": 75119, "point": 21497, "startDate": 1537524456498 }, "map": { "GzMk": "oJqQ" }, "name": "tNzx", "next": -54482, "point": -20110, "startDate": 1537524456497 }

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/kkk001-mockj.git
git@gitlife.ru:oschina-mirror/kkk001-mockj.git
oschina-mirror
kkk001-mockj
kkk001-mockj
master