javascript - 出于测试目的生成无效文件名

标签 javascript node.js file unit-testing

我有一段代码需要测试。其中一项测试需要添加覆盖范围,其中创建一个 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 的值可能是多少?

** 编辑 **

临时测试目录的屏幕截图,其中从有问题的代码创建了奇怪的名称。

enter image description here

最佳答案

编辑:

尝试使用很长的文件名。 (好像 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/

相关文章:

c++ - 在 C++ 文件中使用 eof()

python - 查找后不读取所有字符

javascript - 结构化编程 - 这个 javascript 模式叫什么?使用它好吗?

javascript - jqueryUI 自动完成 - 无论搜索结果如何,始终附加一个选项

node.js - 我可以使用 require ("path").join 来安全地连接网址吗?

node.js - 在 Sequelize 中更改 createdAt 的值?

C++ 使用 lz4 压缩,压缩信息不符合预期

javascript - 使用 Javascript 将文件读入数组 - 似乎无法使其工作

javascript - jQuery 可排序溢出 : hidden; between two lists

javascript - Mongoose - 通过回调函数返回设置虚拟值