Node.js測(cè)試中的Mock文件系統(tǒng)詳解
Mock文件系統(tǒng)相關(guān)的工具包括:
Mock fs 模塊的工具mock-fs 。
Mock require 模塊的工具mock-require 。
安裝
mock-fs和 mock-require 都是NPM軟件包,在項(xiàng)目中可通過(guò)npm直接安裝:
npm install mock-fs mock-require --save
Mock fs 模塊
通過(guò)mock()方法可以創(chuàng)建多個(gè)文件的Mock并立即生效, 此后對(duì)fs的調(diào)用都會(huì)訪(fǎng)問(wèn)這些Mock文件。 調(diào)用mock.restore()可取消Mock并恢復(fù)fs。
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 機(jī)制
mock-fs的原理是重寫(xiě)fs模塊的文件讀寫(xiě)功能,重定向到Mock文件。 所以對(duì)require并不起作用。 為了讓require讀取Mock文件,只能重寫(xiě)require方法。 mock-require便是封裝了該操作。
通過(guò)mock方法進(jìn)行Mock,通過(guò)mock.stopAll停止Mock并恢復(fù)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();
});
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
- 使用mock.js隨機(jī)數(shù)據(jù)和使用express輸出json接口的實(shí)現(xiàn)方法
- vue+mockjs模擬數(shù)據(jù)實(shí)現(xiàn)前后端分離開(kāi)發(fā)的實(shí)例代碼
- Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請(qǐng)求的教程
- vue-cli項(xiàng)目中使用Mockjs詳解
- vue+vuecli+webpack中使用mockjs模擬后端數(shù)據(jù)的示例
- Vue+Mock.js模擬登錄和表格的增刪改查功能
- kmock javascript 單元測(cè)試代碼
- express+mockjs實(shí)現(xiàn)模擬后臺(tái)數(shù)據(jù)發(fā)送功能
- vue+axios+mock.js環(huán)境搭建的方法步驟
- mockjs+vue頁(yè)面直接展示數(shù)據(jù)的方法
- mock.js實(shí)現(xiàn)模擬生成假數(shù)據(jù)功能示例
相關(guān)文章
使用node-media-server搭建一個(gè)簡(jiǎn)易的流媒體服務(wù)器
這篇文章主要介紹了使用node-media-server搭建一個(gè)簡(jiǎn)易的流媒體服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
利用Node.js制作爬取大眾點(diǎn)評(píng)的爬蟲(chóng)
相信每位用過(guò)大眾點(diǎn)評(píng)的人都知道,大眾點(diǎn)評(píng)上有很多美食餐館的信息,所以這篇文章給大家分享利用Node.js實(shí)現(xiàn)爬取大眾點(diǎn)評(píng)的爬蟲(chóng),正好可以拿來(lái)練練手Node.js。感興趣的可以參考借鑒。2016-09-09
node Buffer緩存區(qū)常見(jiàn)操作示例
這篇文章主要介紹了node Buffer緩存區(qū)常見(jiàn)操作,涉及node.js操作Buffer緩存的創(chuàng)建、寫(xiě)入、讀取、轉(zhuǎn)換等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05
如何在NestJS中添加對(duì)Stripe的WebHook驗(yàn)證詳解
這篇文章主要為大家介紹了如何在NestJS中添加對(duì)Stripe的WebHook驗(yàn)證詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Node.js如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)連接池
文章介紹了Node.js中實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)連接池的方法,通過(guò)預(yù)先建立和管理數(shù)據(jù)庫(kù)連接對(duì)象,優(yōu)化數(shù)據(jù)庫(kù)連接的使用效率2024-11-11
Node.js實(shí)現(xiàn)格式化時(shí)間的兩種方法詳解
在 Node.js 開(kāi)發(fā)中,格式化時(shí)間是一個(gè)常見(jiàn)的需求,本文將介紹兩種格式化時(shí)間的方式,即使用 JavaScript 內(nèi)置方法 和 使用 npm 包 moment,需要的可以了解下2025-03-03
node.js中跨域請(qǐng)求實(shí)現(xiàn)方法詳解
這篇文章主要介紹了node.js中跨域請(qǐng)求實(shí)現(xiàn)方法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12

