我在这里调用哪个createReadStream ?



我正在尝试使用aws-sdk-mock包模拟对S3的调用。我想在一个桶上模拟getObject,这样,而不是createReadStream()从一个桶创建一个网络流,它在我的测试套件中从一个本地文件创建一个可读流。

下面是我如何嘲弄s3调用的:

s3Spy = AWS.mock("S3", "getObject", {
createReadStream: () => {
return fs.createReadStream(testDataFile)
}
});

这里是使用它的行:

const stream = s3.getObject(params).createReadStream();

我可以用console.log调用跟踪stream,它显然是可读的:

console.log(stream)
Readable {
_readableState: ReadableState {
...
},
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
_read: [Function (anonymous)],
[Symbol(kCapture)]: false
}

但是,如果我进一步检查它,它不是一个文件可读:

console.log(stream.path)
undefined

我叫哪createReadStream如果不是我嘲笑那个人吗?我如何写这个,以便我拉入我想要使用的模拟数据?

我通过更改mock代码解决了这个问题:

s3Spy = AWS.mock("S3", "getObject", fs.createReadStream(testDataFile));

相关内容

  • 没有找到相关文章

最新更新