本文作者:Aman Mittal
编译:胡子大哈翻译原文:http://huziketang.com/blog/posts/detail?postId=58ece6c1a58c240ae35bb8e4
英文连接:How to Mock Data for Node.js Applications using Faker.js
转载请注明出处,保留原文链接以及作者信息
当我们开发一个应用的时候,通常都不想耗过多的精力在数据上。创建数据库并且往数据库里塞用例数据这件事情,会使我很烦躁。我宁愿花更多的时间在 RESTful API 和如何构建前端应用上。
但是这并不是说我不在意数据库中数据的组织,对于数据的收集、整理有一个整体的规划还是很重要的。这方面工作完成以后,在你开发 API 的时候对于要解决什么问题和如何解决这个问题就变得非常清晰了。在我最近的工作中,我要创建一个客户端电子商务网站原型,我发现这种情况我以前也遇到过,我需要在截止日期之前,提交一个客户端所需要的尽可能检测完全的原型系统。在确定了我数据库结构以后,我查了一下解决方案,发现了一个针对 mock 数据非常好的解决方案:Faker.js。
初识 Faker.js
这是一个很棒的 node 模块,用来 mock 数据。Faker 有自己的 API,而且功能非常丰富,这一切都要归功于发明它的人 Marak 。它几乎可以覆盖到任何你想用的用例,在 Github 上的文档也可以帮你分分钟熟悉它的用法。
现在来看一下我需要用的测试用例——一个用户信息。
姓名
email
网站
地址
个性签名
头像
const faker = require('faker')
const User = {
name: faker.name.findName(),
email: faker.internet.email(),
website: faker.internet.url(),
address: faker.address.streetAddress() + faker.address.city() + faker.address.country(),
bio: faker.lorem.sentences(),
image: faker.image.avatar()
}
module.exports = User
上图就是结果了,用 faker.js 很方便地可以 mock 数据,只需要添加 npm 依赖就行了:
npm install faker --save
Faker.js 数据
Faker.js 能产生的数据如下:
地址
商业信息
公司
日期
金融
黑客
助手
图片
网络
乱数假文
名字
电话
随机数
系统
上面每一个项目里面都有很多子项目,文档中有详细说明。
另外一个我很喜欢 Faker 的原因是,它不仅可以使用在服务端的 JavaScript,还可以应用在浏览器端 JavaScript。文档中的代码告诉你如何使用:
<script src = "faker.js" type = "text/javascript"></script>
<script>
var randomName = faker.name.findName(); // Caitlyn Kerluke
var randomEmail = faker.internet.email(); // Rusty@arne.info
var randomCard = faker.helpers.createCard(); // random contact card containing many properties
</script>
这些 API 可以很快地开发 JavaScript / Node.js 应用原型。不仅如此,在开发 RESTful API 的时候,还可以很容易地 mock TDD / BDD 测试。
完整的源代码,在这个 Github 库中可以看到。
如果本文对你有帮助,欢迎关注我的专栏-前端大哈,定期发布高质量前端文章。
我最近正在写一本《React.js 小书》,对 React.js 感兴趣的童鞋,欢迎指点。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。