嘲笑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 })