简介
NPM (Node Package Manager) 是一个专门用于 Node.js 的包管理器,由 Node.js 基金会维护。开发者可以使用 NPM 来查找、分享、以及下载开源模块,将其集成到自己的项目中。在 NPM 上可以找到各种各样的模块,从数学计算到生成假数据的模块,应有尽有。而 parody 就是一个应用广泛的生成假数据的 npm 包。其主要作用是提供给前端开发者快速生成测试数据。
安装 parody
推荐通过 npm 来安装 parody,可以使用下面的命令进行安装。
--- ------- ------
使用 parody
在导入 parody 后,我们就可以使用 parody.mock
方法来生成假数据了。
第一个例子
----- ------ - ------------------ ----- -------- - ------------- ----- -------- ---- --------- ----- ------- --------------- ------------ ------ --------- ------- -------------------- ----- ------- --- ----------------------
上述代码中,我们使用 parody 生成了一个假用户数据。在 userData
中,我们可以看到 name
、age
、gender
、email
、avatar
和 role
等属性的值都是需要测试的假数据。并且在这段代码中,我们使用了 @
符号来声明变量类型。具体含义如下:
@name
:生成一个随机的英文名称。@int(18, 50)
:生成一个 18 到 50 之间的整数。@pick(["male", "female"])
:从数组中随机选择一个值,这里只有"male"
和"female"
两个选项。@email
:生成一个随机的电子邮件地址。@image("200x200")
:生成一个 200x200 的图片。@word
:生成一个随机的单词。
第二个例子
----- ------ - ------------------ ----- -------- - ------------- --------------- -- -------- -- ------- -------- ------------ -- --------- --------------- ------------ -------- --------- --------- ------------------- -- --- ----------------------
在这段代码中,我们使用了 @alias
符号来声明变量类型。我们采用了 dataList
这个数据模板来生成一个用户数据列表。具体含义如下:
dataList|4-8
:表示生成一个长度在 4 到 8 之间的数组。id|+1
:表示从 1 开始,依次递增生成一个 ID。name
、age
、gender
、email
和avatar
属性的含义和上一个例子相同。
深入理解 parody
在1.x版本中,parody 提供了一个 parody.normal
方法来生成假数据,2.x 版本中已经废弃了 parody.normal
方法,改为了 parody.mock
方法。下面我们来深入学习一下如何理解 parody.mock
,并如何使用它。
数据模板
数据模板是一种用以描述真实数据结构的数据,在这种数据结构中嵌入占位符,以生成随机的数据对象。下面,我们举几个例子来阐述如何使用这种数据结构。
对象与属性
生成简单的对象,对象中的属性用占位符 @
来进行表示,例如:
- ------- -------- ------------ -- ------ -------------------------- -
对象中的属性可以是字符串(String)、数值(Number)、布尔值(Boolean)、对象(Object)、数组(Array)等其他任何类型。但需要注意的是,在占位符 @
中,需要使用 ""
包裹字符串类型的占位符,例如 '"Hello World"'
。
数组
生成复杂的数据需要使用数组,而占位符属性值在数组的情况下依旧适用,例如:
- ------------ -- ----- ------ ------- -------- -- -
这个模板会随机生成一个长度在 1-10 的数组,数组的每个元素都是一种模式形如:{ 'id': '@id', 'name': '@cname' }
。
占位符可以引用当前数据模板的属性。使用 @
语法定义条件和在另一个属性中使用它参考官方文档。
属性值可以调用函数
parody 中还提供了一些内置的函数,并针对特定类型提供了内置的函数可供选择使用。例如:
类型 | 说明 | 函数调用语法 |
---|---|---|
string | 生成随机字符串 | @string(length?: number) |
number | 生成随机数值 | @float(min?: number, max?: number, dmin?: number, dmax?: number) @integer(min?: number, max?: number) |
boolean | 生成随机布尔值 | @boolean(min?: number) |
object | 生成随机对象 | @object(object: {[key: string]: any}) |
array | 生成随机数组 | @array(array: Array<any >, min?: number, max?: number) |
自定义函数
当内置函数不能满足需求时,可以自定义注入函数。例如:
----- ------ - ------------------ --------------- -------- ----- ---- -- ---------------------- - ---- - ---- - ---- ---- ----------- -------- -- - --- ---- - -- ----- ---------- - ---- -- ---------------------- - ------------- - ---- - ------ ----- -- --- ----- ---- - ------------- ----- ----------------- ---- ------------- ----- --- ------------------
上面的代码中,我们使用 parody.inject
方法注册了两个自定义函数 randInt
和 randString
。通过自定义函数,我们可以更灵活地生成需要的测试数据。
结语
使用 parody
生成测试数据可以让我们得到更高效的测试效果,每一个程序员在编写代码时虽然力求避免出错,但是没有谁能保证代码没有任何bug,因此,生成真实且丰富的测试数据是十分重要的。本文介绍了 npm 包 parody
的基本使用方法,同时介绍了较为深入的数据模板概念、函数调用等,希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600672e30520b171f02e1d9e