欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js測試中的Mock文件系統(tǒng)詳解

 更新時間:2016年11月21日 08:47:21   投稿:daisy  
相信大家應(yīng)該都知道在Node.js測試中,常常會需要構(gòu)造某種項目目錄。 為每個測試用例添加相應(yīng)的目錄結(jié)構(gòu)既費(fèi)時又難以維護(hù)。那么這個時候Mock文件系統(tǒng)就派上用場了,下面這篇文章詳細(xì)的介紹了Mock文件系統(tǒng),有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。

Mock文件系統(tǒng)相關(guān)的工具包括:

    Mock fs 模塊的工具mock-fs 。

    Mock require 模塊的工具mock-require

安裝

mock-fsmock-require 都是NPM軟件包,在項目中可通過npm直接安裝:

npm install mock-fs mock-require --save

Mock fs 模塊

通過mock()方法可以創(chuàng)建多個文件的Mock并立即生效, 此后對fs的調(diào)用都會訪問這些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的原理是重寫fs模塊的文件讀寫功能,重定向到Mock文件。 所以對require并不起作用。 為了讓require讀取Mock文件,只能重寫require方法。 mock-require便是封裝了該操作。

通過mock方法進(jìn)行Mock,通過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é)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • node.js中格式化數(shù)字增加千位符的幾種方法

    node.js中格式化數(shù)字增加千位符的幾種方法

    這篇文章主要介紹了node.js中格式化數(shù)字增加千位符的幾種方法,本文給出3種實(shí)現(xiàn)方法,并分別給出實(shí)例代碼,需要的朋友可以參考下
    2015-07-07
  • NodeJs?Express中間件超詳細(xì)講解

    NodeJs?Express中間件超詳細(xì)講解

    Express中間件本質(zhì)上就是一個function處理函數(shù),多個中間件之間,共享同一份req和res,我們就可以在上游的中間件中統(tǒng)一為req或者res對象添加自定義的屬性或方法,供下游的中間件或路由進(jìn)行使用,非常方便
    2022-08-08
  • node.js操作mongodb簡單示例分享

    node.js操作mongodb簡單示例分享

    MongoDB是基于Javascript語言的數(shù)據(jù)庫,存儲格式是JSON,而Node也是基于JavaScript的環(huán)境(庫),所以node和mongoDB的搭配能減少因為數(shù)據(jù)轉(zhuǎn)換帶來的時間空間開銷。今天我們來看看如何通過node.js來操作MongoliaDB
    2017-05-05
  • Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

    Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

    這篇文章主要介紹了Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-08-08
  • node.js突破nginx防盜鏈機(jī)制,下載圖片案例分析

    node.js突破nginx防盜鏈機(jī)制,下載圖片案例分析

    這篇文章主要介紹了node.js突破nginx防盜鏈機(jī)制,下載圖片的方法,結(jié)合具體案例形式分析了防盜鏈的相關(guān)原理與node.js使用axios庫下載防盜鏈圖片的相關(guān)操作技巧,需要的朋友可以參考下
    2023-04-04
  • 如何用npm命令刪除開發(fā)項目中的node_modules文件夾

    如何用npm命令刪除開發(fā)項目中的node_modules文件夾

    每個項目都會產(chǎn)生一個node_modules,每個node_modules少則幾十兆,多則幾百甚至上千兆,隨著時間的積累,維護(hù)項目的增加,整個項目目錄體積會越來越大,這篇文章主要給大家介紹了關(guān)于如何用npm命令刪除開發(fā)項目中的node_modules文件夾,需要的朋友可以參考下
    2023-12-12
  • Node.js中sequelize時區(qū)的配置方法

    Node.js中sequelize時區(qū)的配置方法

    這篇文章主要給大家介紹了關(guān)于Node.js中sequelize時區(qū)的配置方法,文中先對時區(qū)的基礎(chǔ)概念進(jìn)行了簡單介紹,然后通過示例代碼詳細(xì)介紹了sequelize時區(qū)的配置方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • node.js中的buffer.copy方法使用說明

    node.js中的buffer.copy方法使用說明

    這篇文章主要介紹了node.js中的buffer.copy方法使用說明,本文介紹了buffer.copy的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐

    詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐

    這篇文章主要介紹了詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 初學(xué)者如何快速搭建Express開發(fā)系統(tǒng)步驟詳解

    初學(xué)者如何快速搭建Express開發(fā)系統(tǒng)步驟詳解

    這篇文章主要介紹了初學(xué)者如何快速搭建Express開發(fā)系統(tǒng),結(jié)合實(shí)例形式詳細(xì)分析了express框架搭建的具體步驟與相關(guān)注意事項,需要的朋友可以參考下
    2023-05-05

最新評論