我正在开发Nodejs应用程序。我正在使用静音器上传文件。当我开玩笑地编写单元测试时,我看到功能涵盖了测试范围。它表明我发现了线。问题在于那些函数是构造函数选项中的辅助函数
const storage = multer.diskStorage({
destination: "uploads/",
filename: (req, file, cb) => {
filterFilename(req, file, cb);
}
});
const upload = multer({
storage: storage,
limits: {
files: 2,
fileSize: 5 * 1024 * 1024
},
fileFilter: (req, file, cb) => {
checkFileType(file, cb);
}
});
我想知道如何测试filterFilename
和checkFileType
函数以及其中的语句。顺便说一下,这些功能是私有功能。我不想导出它们。
答案 0 :(得分:0)
测试此代码的一种方法是像这样模拟multer
:
var multer = require('multer')
jest.mock('multer', () => jest.fn())
test('basic', () => {
runTheCodeInYourSnippet();
expect(multer).toHaveBeenCalled()
const {
storage,
fileFilter
} = multer.mock.calls[0][0]
// test storage.filename(req, file, cb)
// and fileFilter(req, file, cb)
})