Node.js測試中的Mock文件系統(tǒng)詳解
Mock文件系統(tǒng)相關的工具包括:
Mock fs 模塊的工具mock-fs 。
Mock require 模塊的工具mock-require 。
安裝
mock-fs和 mock-require 都是NPM軟件包,在項目中可通過npm直接安裝:
npm install mock-fs mock-require --save
Mock fs 模塊
通過mock()方法可以創(chuàng)建多個文件的Mock并立即生效, 此后對fs的調用都會訪問這些Mock文件。 調用mock.restore()可取消Mock并恢復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 機制
mock-fs的原理是重寫fs模塊的文件讀寫功能,重定向到Mock文件。 所以對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();
});
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- 使用mock.js隨機數(shù)據(jù)和使用express輸出json接口的實現(xiàn)方法
- vue+mockjs模擬數(shù)據(jù)實現(xiàn)前后端分離開發(fā)的實例代碼
- Node.js服務器環(huán)境下使用Mock.js攔截AJAX請求的教程
- vue-cli項目中使用Mockjs詳解
- vue+vuecli+webpack中使用mockjs模擬后端數(shù)據(jù)的示例
- Vue+Mock.js模擬登錄和表格的增刪改查功能
- kmock javascript 單元測試代碼
- express+mockjs實現(xiàn)模擬后臺數(shù)據(jù)發(fā)送功能
- vue+axios+mock.js環(huán)境搭建的方法步驟
- mockjs+vue頁面直接展示數(shù)據(jù)的方法
- mock.js實現(xiàn)模擬生成假數(shù)據(jù)功能示例
相關文章
使用node-media-server搭建一個簡易的流媒體服務器
這篇文章主要介紹了使用node-media-server搭建一個簡易的流媒體服務器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
如何在NestJS中添加對Stripe的WebHook驗證詳解
這篇文章主要為大家介紹了如何在NestJS中添加對Stripe的WebHook驗證詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
Node.js如何實現(xiàn)MySQL數(shù)據(jù)庫連接池
文章介紹了Node.js中實現(xiàn)MySQL數(shù)據(jù)庫連接池的方法,通過預先建立和管理數(shù)據(jù)庫連接對象,優(yōu)化數(shù)據(jù)庫連接的使用效率2024-11-11

