我有一段我需要测试的代码。其中一项测试需要在创建stream.Writable
时添加覆盖范围,并提供指定的output
文件名。
我需要测试Writable
应该失败的情况,它应该发出error
事件并执行正确的错误处理函数等等。
现在,我想我应该只创建一些无效的文件,使用一些奇怪的名字。但这项任务似乎比预期的要困难得多。
如何自愿将此代码段放入catch
块?
outputFile = String(outputFile); // not exactly how this is really done,
// but the end result is the same
try {
writer = fs.createWriteStream(outputFile, { flags: 'w' })
.on('error', errorHandler) // basically throws the error
.on('close', closeHandler); // function 100% tested
} catch (e) {
// irrelevant code regarding this question, untested so far
}
基本上,outputFile
可能是什么价值?
临时测试目录的屏幕截图,其中根据该违规代码创建了奇怪的名称。
答案 0 :(得分:1)
编辑:
尝试使用非常长的文件名。 (好像fs最多只支持255-260个字符)
忽略下面的部分
我的解决方案是有一个共同的errorHandler,即代码就像......
try{
writer = fs.createWriteStream(outputFile, { flags: 'w' })
.on('error',errorHandler)
.on('close', closeHandler);
}catch(e){
errorHandler(e);
}