我有一段代码需要测试。其中一项测试需要添加覆盖范围,其中创建一个 stream.Writable
并给出指定的output
文件名。
我需要测试Writable
应该失败的情况,它应该发出error
事件并且应该执行正确的错误处理函数,等等。
现在,我想我应该只创建一些无效的文件,使用一些奇怪的名称。但任务似乎比预想的要困难一些。
我怎样才能自愿让这个代码片段进入catch
block ?
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
的值可能是多少?
** 编辑 **
临时测试目录的屏幕截图,其中从有问题的代码创建了奇怪的名称。
最佳答案
编辑:
尝试使用很长的文件名。 (好像 fs 仅支持最多 255-260 个字符长)
忽略下面的部分
<小时/>我的解决方案是有一个通用的错误处理程序,即代码类似于...
try{
writer = fs.createWriteStream(outputFile, { flags: 'w' })
.on('error',errorHandler)
.on('close', closeHandler);
}catch(e){
errorHandler(e);
}
关于javascript - 出于测试目的生成无效文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26418547/