跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [开源] < 800 bytes 用一个更爽的方式生成 mock 假数据
未分類
7 2 月 2021

[开源] < 800 bytes 用一个更爽的方式生成 mock 假数据

[开源] < 800 bytes 用一个更爽的方式生成 mock 假数据

資深大佬 : 50vip 0

最近在做可视化图表 G2Plot 的性能测试和优化,第一步就是 mock 指定结构的数据,一般大家都用 mockjs,但是我看了 API 和语法,感觉有点黑了,不好用,于是自己造了一个轮子( miz ),感觉代码写的还不错,分享给大家!

项目地址:miz

举例子,生成一个长度为 2 的用户信息。(使用方法类似于 react 的 prop-types )

import { M } from 'miz';  const m = M.arrayOf(M.shape({   id: M.number(10000, 1000000),     // id is between 10000 ~ 1000000.   name: M.string(6),                // 6 length random string.   sex: M.bool(),                    // random true or false.   city: 'hz',                        // constant value.   work: M.oneOf(['QA', 'FED'])      // random from array }), 2);                              // list length is 2.  m.mock();  

Then will get the mock variable like below:

[{  id: 757852,  name: 'mU7RTB',  sex: false,  city: 'hz',  work: 'FED' }, {  id: 359987,  name: 'jWuKxX',  sex: true,  city: 'hz',  work: 'FED' }] 

如果觉得好用,不吝点个 star ^_^

大佬有話說 (13)

  • 資深大佬 : no1xsyzy

    假数据不是 mock 而是 dummy data 或者 fake data 。mock 是指假调用
    搜索了一下,比如 npm i fake-data-generator 这个,其实很像,不过是写 json 配置的

  • 資深大佬 : no1xsyzy

    看了一下,其实你连 mockjs 的 Get Started 示例都不能用正常方法做出来吧
    怎么做一个自增键?

  • 主 資深大佬 : 50vip

    @no1xsyzy miz 主要最随机。对于序列是:

    M.apply(() => {});

  • 資深大佬 : THP301

    mock 形容词: 虚假, 虚设, 义
    mock 假数据 = 虚假的假数据 = 真数据 ?

  • 資深大佬 : no1xsyzy

    @50vip 我是说 [{id:1}, {id:2}, {id:3}] 这种,你必须在外面定义一个变量。

  • 主 資深大佬 : 50vip

    @no1xsyzy M.apply(() => _.uniqueId());

  • 主 資深大佬 : 50vip

    @no1xsyzy 就是不想用 mockjs 的那个不是很懂的语法,所以撸了一个轮子。~~

  • 資深大佬 : YouLMAO

    大部分的测试都是确定性的,不是随机数据也不是自增数据

  • 資深大佬 : YouLMAO

    要先有需求再做产品

  • 資深大佬 : no1xsyzy

    @YouLMAO 自增是确定性的。
    一般只跑一次之后就用同一个数据集了。你总不见得拿线上数据测试,或者手撸假数据。

    @50vip 所以说还是外部变量,而且起始点还不受控
    好,那么来个这个:一个列表,每个元素是章节序号和属于该章节的图片列表、代码块列表
    每个图片列表的 ref 应当是 “图 <章节序号>-<该章节内的图片序号>”,代码块列表类似。
    用你的库写写看?
    你底层抽象彻底错了。操作数据应当使用函数式范式。
    https://gist.github.com/no1xsyzy/3cc83e5da3fca783deb74954b915baa0

  • 資深大佬 : YouLMAO

    @no1xsyzy 建议你看看 gmock 框架,

    自增是确定性的, 但很少场景会用到, 举个例子 代码面试要你测自己程序 testcase 你输入 1,2,3,4 吗, 肯定是-1,0,1,+IntMax 等边界条件咯, 测了 2,就不需要测 3 和 4 了

  • 資深大佬 : no1xsyzy

    另外,arrayOf 有个 bug,你没法调最短为 0 的 array 。
    M.arrayOf(…, 0, 5) 会产生一个最短为 5 最长为 20 的序列。

  • 資深大佬 : no1xsyzy

    @YouLMAO 哦忽略了这点,单元测试不常用……
    性能测试和黑箱测试(人工)的话,用 dummy 数据的会比较多。

    gmock 似乎是 mock 而不是假数据生成器。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具