Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung des Mock-Dateisystems beim Testen von Node.js

Detaillierte Erläuterung des Mock-Dateisystems beim Testen von Node.js

高洛峰
Freigeben: 2016-12-06 13:21:21
Original
1599 Leute haben es durchsucht

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
Nach dem Login kopieren

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');
  });
 });
});
Nach dem Login kopieren

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();
 });
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage