Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung des Mock-Dateisystems beim Testen von Node.js
Zu den Mock-Dateisystem-bezogenen Tools gehören:
Das Tool Mock-fs des Mock-fs-Moduls.
Mock-require-Tool des Moduls „mock-require“.
Installation
Mock-fs und Mock-require sind beide NPM-Softwarepakete, die direkt über npm im Projekt installiert werden können:
npm install mock-fs mock-require --save
Mock-fs-Modul
Mocks mehrerer Dateien können über die Methode „mock()“ erstellt werden und werden sofort wirksam, wenn sie auf diese Mock-Dateien zugreifen. Rufen Sie „mock.restore()“ auf, um den Mock abzubrechen und fs wiederherzustellen.
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-Mechanismus
Das Prinzip von Mock-FS besteht darin, die Dateilese- und Schreibfunktion des FS-Moduls neu zu schreiben und in die Mock-Datei umzuleiten. Es funktioniert also nicht für require. Damit require die Mock-Datei lesen kann, kann die require-Methode nur überschrieben werden. Mock-require kapselt diesen Vorgang.
Mock durch die Mock-Methode, Stoppen Sie Mock durch mock.stopAll und stellen Sie require wieder her.
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(); });