当我们开发一个应用的时候,通常都不想耗过多的精力在数据上。创建数据库并且往数据库里塞用例数据这件事情,会使我很烦躁。我宁愿花更多的时间在 RESTful API 和如何构建前端应用上。
但是这并不是说我不在意数据库中数据的组织,对于数据的收集、整理有一个整体的规划还是很重要的。这方面工作完成以后,在你开发 API 的时候对于要解决什么问题和如何解决这个问题就变得非常清晰了。在我最近的工作中,我要创建一个客户端电子商务网站原型,我发现这种情况我以前也遇到过,我需要在截止日期之前,提交一个客户端所需要的尽可能检测完全的原型系统。在确定了我数据库结构以后,我查了一下解决方案,发现了一个针对 mock 数据非常好的解决方案: Faker.js 。
这是一个很棒的 node 模块,用来 mock 数据。Faker 有自己的 API,而且功能非常丰富,这一切都要归功于发明它的人 Marak 。它几乎可以覆盖到任何你想用的用例,在 Github 上的文档也可以帮你分分钟熟悉它的用法 。
现在来看一下我需要用的测试用例——一个用户信息。
- 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 的原因是,它不仅可以使用在服务端的 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://www.tuicool.com/articles/a6BvA3j