这里有新鲜出炉的 Node.js 教程,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
相信大家应该都知道在 Node.js 测试中,常常会需要构造某种项目目录。 为每个测试用例添加相应的目录结构既费时又难以维护。那么这个时候 Mock 文件系统就派上用场了,下面这篇文章详细的介绍了 Mock 文件系统,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
Mock 文件系统相关的工具包括:
模块的工具
- Mock fs
。
- mock-fs
模块的工具
- Mock require
。
- mock-require
安装
和
- mock-fs
都是 NPM 软件包,在项目中可通过 npm 直接安装:
- mock-require
- npm install mock-fs mock-require --save
Mock fs 模块
通过
方法可以创建多个文件的 Mock 并立即生效, 此后对 fs 的调用都会访问这些 Mock 文件。 调用
- mock()
可取消 Mock 并恢复 fs。
- mock.restore()
- var fs = require('fs');
- var mock = require('mock-fs');
- describe('fs',
- function() {
- beforeEach(function() {
- mock({
- './CNAME': 'harttle.com',
- './_config.yml': 'empty'
- });
- });
- afterEach(function() {
- mock.restore();
- });
- describe('#readFileSync()',
- function() {
- it('should read all content',
- function() {
- var str = fs.readFileSync('CNAME', 'utf8');
- expect(str).to.equal('harttle.com');
- });
- });
- });
Mock require 机制
的原理是重写 fs 模块的文件读写功能,重定向到 Mock 文件。 所以对
- mock-fs
并不起作用。 为了让
- require
读取
- require
文件,只能重写
- Mock
方法。
- require
便是封装了该操作。
- mock-require
通过
方法进行
- mock
,通过
- Mock
停止
- mock.stopAll
并恢复
- Mock
。
- require
- const mock = require('mock-require');
- describe('parser',
- function() {
- beforeEach(function() {
- mock('/package.json', {
- "name": "sample-module",
- "version": "1.0.0",
- "view": "htmls/my-html.hbs",
- "router": "svr.js"
- });
- });
- afterEach(function() {
- mock.stopAll();
- });
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
来源: http://www.phperz.com/article/17/0507/330361.html