一个强大的测试数据生成器
发布于 10 年前 作者 qiu8310 17046 次浏览 最后一次编辑是 8 年前 来自 分享

项目地址

源码地址 在线演示

背景

  • 前端程序员会因为后端没有接口数据,开发某些功能可能就不太方便
  • 后端程序员常会被前端程序员催促给接口,给数据

用 yod-mock 解决

使用它非常简单

  • 第一步定义结构类型:yod.type('xxx', {...})
  • 第二步使用你定义的类型生成随机的数据:yod('@xxx.repeat(10)')

可以看个 DEOM

// 定义一个用户类型
yod.type('User', {
  firstName: '@First',
  myFirstNameLength: '@Self.firstName.length',
  lastName: '@Last',
  '@Self.lastName': 'is my family name',
  fullName: '@Self.firstName @Self.lastName',
  nickName: '@Nick',
  chineseName: '@ChineseName',
  age: '@Age(adult)',
  to100: ' `100 - @Self.age` ',
  telephone: '@Tel',
  avatar: '@Avatar',
  others: {
     words: 'My name is @Parent.fullName,  call me @Parent.nickName.',
     bestFriends: '@Nick.repeat(2, 3).join(", ")',
     favouriteLetter: '@([A, B, C]).sample'
  }
});
// 重复生成 2 - 4 个用户
console.log(yod('@User.repeat(2, 4)'));

上面代码会用你定义的 User 结构体去生成一个数组,包含 2-4 个 User

你可以在线查看或修改上面的 DEMO

yod-mock 的主要特点

  • 语法简洁,学习成本低,功能强大
  • 支持所有 JS 原生的函数
  • 支持所有 lodash 的函数
  • 支持处定义新的 type 和 modifier
  • 支持配置系统现有的数据(使用 yod.config('system.xxx', ...)
  • 支持在浏览器、NodeJS 或 命令行上使用
17 回复

思路不错,收藏

@alsotang 对 ruby 不熟悉,没听过那个。不过我参考了 阿里的 mockjs 和国外的 chance,它们两个功能上比较简单些。

之前写的太抽像了,修改了下组织语言。

个人觉得非常有用~

挺有用的,收藏,谢谢了~

@russj 嗯,谢了,可以参考。

另外,国外还有个 http://chancejs.com/ ,中国阿里也出了个 http://mockjs.com/ ,但它们功能我觉得都不及我的强大,不过可以参考它们 Random 数据生成的方式。

更新了一个版本,添加了测试,并且修复了上一个版本中的一些很明显的问题!

很有用 自豪地采用 CNodeJS ionic

我知道还有2种 http://mockjs.com/ http://www.mocky.io/ - 这个可以在线生成接口,但是居然不支持跨域调用…

@littleshe 不错,这是一个我想做的类似的服务端版本!

它是用 Java 写的,在 Github 上人气好像还蛮低的,可以参考下它的,以后有时间用 Node 重写一个。

谢谢!

@think2011 不分享不知道,一分享大家把知道的库都分享出来了,不错,知道不少了。谢谢!

回到顶部