【发布时间】:2021-11-27 01:11:24
【问题描述】:
我正在尝试使用 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,我会打电话给哪个?我怎样才能写这个,以便我提取我想使用的模拟数据?
【问题讨论】:
标签: javascript amazon-web-services amazon-s3 jestjs