Skip to content
This repository has been archived by the owner on Jul 30, 2022. It is now read-only.
/ tasteak Public archive

Tool for generate random test data accord to mongoose schema

Notifications You must be signed in to change notification settings

ezirmusitua/tasteak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

随机 JSON 数据生成器

一个能够利用 mongoose schema 生成随机数据的小程序

基本使用

使用内置的基本类型生成随机数据, generate 方法接受一个参数,用于指定需要生成的数量

const mongoose = require('mongoose');
const testSchema = new mongoose.Schema({
    title: String,
    content: String,
    guests: [String],
    start: Number,
    isOnline: Boolean
});
const prePlugins = require('random-data-generator').plugins;
const dataGenerator = require('random-data-generator).Generator;
const generator = Generator.use(testSchema);
generator.use(prePlugins);
// 1
generator.generate();
// 3
generator.generate(3);

使用 save 方法产生随机数据并保存, 接受 2 个参数,第 1 个为存储路径,第 2 个为生成数据数目(默认为 1 个)

// generate 3 random data and save to data.json
generator.save('./data.json', 3);

更改或者更新使用的插件

// add plugin
prePlugins[title] = {type: 'chinese'};
// use another plugins
const prePlugins = prePlugins.concat([{title: /[a-z]{2,5}/}, {content: 'chinese'}])

关于自定义插件

{
  KeyName: {
    type: …,
    params: […],
    count: …
}

其中: keyname: 用来匹配 schema 中的字段名称,第一阶段直接全匹配,之后可以考虑正则匹配

type: 字段用于指定字段的类型,这里可以有三种类型的值,一种是字符串,可以表示内置插件或者是常量,一种是正则表达式,可以表示期望生成字符串的模式,还有一种是普通常量,最后一种是函数,在内部实现中,当生成器使用插件时,会将所有的自定义插件转化为函数,然后在生成时 直接根据字段名调用生成即可

params 指的是生成数据需要的参数,必须保证正确的顺序(或许以后可以动态参数,目前可以做到对象无序析构传参)

count 字段用来针对数组类型字段,表面需要生成数组元素个数,以后可以设置为随机个数

安装

npm install tasteak

运行测试

npm test

License

MIT

About

Tool for generate random test data accord to mongoose schema

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published