嘲笑unit testing文件观察器库的文件系统

我目前正在unit testing我在Chokidar周围编写的一个封装器,它是一个文件系统监视器,它本身就是一个本地fs.watchfunction的包装器。 我用摩卡/柴写我的testing。

我知道有这个美好的图书馆模拟fs ,然而,它是说,它是在底部

下面的fs函数目前没有被模拟(如果你的testing使用这些函数,它们将会对真正的文件系统起作用):fs.FSWatcher,fs.unwatchFile,fs.watch和fs.watchFile。 拉请求欢迎。

所以它不会帮助我testing我的观察者。

目前,我已经设置了真正的读/写的FS,没有嘲笑,但它是繁琐的和时间依赖(这使得它依赖于硬件)。

任何人都可以build议我可能更好的方法吗?

今天早些时候我有这个问题。 还有另一个模拟fs-mock节点的库。 这个库允许你模拟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 })