2017-03-21 2 views
1

私は現在、ファイルシステムウォッチャーであるChokidarについて書いたラッパーを単体テストしています。これはそれ自体ネイティブfs.watch機能のラッパーです。私はモカ/チャイでテストを書く。単体テストファイルウォッチャーライブラリのモッキングファイルシステム

私はこの素晴らしいライブラリmock-fsがある知っているが、注意すべき点は、しかし、それはあなたのテストはこれらを使用している場合、彼らは本当のに対して動作します(以下、FS機能は現在嘲笑されていない下

で言うことですファイルシステム):fs.FSWatcher、fs.unwatchFile、fs.watch、およびfs.watchFile。プルの要求は大歓迎です。

私のウォッチャーのユニットテストには役立ちません。

現在私はfockへの真の読み取り/書き込みを設定していますが、面倒なことはありませんが、面倒でタイミングに依存します(ハードウェアに依存します)。

誰かがおそらくより良いアプローチについて私にアドバイスできますか?

答えて

1

私はこの問題を以前より早く受けていました。 fs-mockと呼ばれるノードfsを模倣する別のライブラリがあります。このライブラリを使用すると、fs.watch()をモックできます。あなたは次のことができます:

const Fs = require("fs-mock")   
const fsmock = new Fs({ 
     './mock-directory': { 
     'file9.txt': 'fileContent9', 
     'file8.txt': 'fileContent8', 
     'file7.txt': 'fileContent7', 
     'file6.txt': 'fileContent6', 
     'file5.txt': 'fileContent5', 
     'file4.txt': 'fileContent4', 
     'file3.txt': 'fileContent3', 
     'file2.txt': 'fileContent2', 
     } 
    }) 

fsmock.watch(directory, { recursive: false }, 
    (eventType, filename) => { 
        //YOUR CODE GOES HERE 
     }) 
+0

ありがとう、私はそれをチェックアウトします! –