ホームページ  >  記事  >  ウェブフロントエンド  >  Node.jsテストにおけるMockファイルシステムの詳細説明

Node.jsテストにおけるMockファイルシステムの詳細説明

高洛峰
高洛峰オリジナル
2016-12-06 13:21:211567ブラウズ

モック ファイル システム関連のツールには次のものが含まれます:

モック fs モジュール ツール mock-fs。

モック要求モジュールツールmock-require。

インストール

mock-fsとmo​​ck-requireは両方ともNPMソフトウェアパッケージであり、プロジェクト内のnpmを介して直接インストールできます:

npm install mock-fs mock-require --save

Mock fsモジュール

モックを通じて複数のファイルを作成できます() メソッドのモックはすぐに有効になり、その後の fs の呼び出しはこれらのモック ファイルにアクセスします。 モックをキャンセルして fs を復元するには、mock.restore() を呼び出します。

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 がモック ファイルを読み取るためには、require メソッドをオーバーライドする必要があります。 Mock-require はこの操作をカプセル化します。

mock メソッドを通じてモックを実行し、mock.stopAll を通じてモックを停止し、require を復元します。

りー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。