gpt4 book ai didi

node.js - 用于单元测试文件观察器库的模拟文件系统

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:30 25 4
gpt4 key购买 nike

我目前正在对我围绕 Chokidar 编写的包装器进行单元测试,它是一个文件系统观察器,它本身是 native fs.watch 功能的包装器。我用 mocha/chai 编写测试。

我知道有一个很棒的图书馆mock-fs ,但需要注意的是它在底部说

The following fs functions are not currently mocked (if your tests use these, they will work against the real file system): fs.FSWatcher, fs.unwatchFile, fs.watch, and fs.watchFile. Pull requests welcome.

所以它不会帮助我对我的观察者进行单元测试。

目前,我已将其设置为对文件系统进行真正的读/写,而不进行模拟,但它很乏味且依赖于时间(这使得它依赖于硬件)。

有人可以建议我更好的方法吗?

最佳答案

我今天早些时候遇到了这个问题。还有另一个用于模拟 Node fs 的库,名为 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
})

关于node.js - 用于单元测试文件观察器库的模拟文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42933991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com