用 dwyl/aws-sdk-mock 模拟 AWS 不工作
Mocking AWS with dwyl/aws-sdk-mock not working
首先,我没有使用 lambda,所以我相信 this thread 不是同一个问题。
我在 before
挂钩中遇到此错误:
TypeError: Attempted to wrap undefined property S3 as function
at checkWrappedMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:78:29)
at Object.wrapMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:121:21)
at Object.stub (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/stub.js:67:26)
at mockService (node_modules/aws-sdk-mock/index.js:67:27)
at Object.AWS.mock (node_modules/aws-sdk-mock/index.js:43:5)
at Context.<anonymous> (myModule.spec.js:14:9)
我以前从未使用过这个模块,我对 sinon.js 也没有太多经验。
这是我的模块:
var AWS = require('aws-sdk')
const https = require('https')
module.exports = function () {
var s3 = new AWS.S3({
httpOptions: {
agent: new https.Agent()
},
signatureVersion: 'v4'
})
return s3.getObject({Bucket: 'somebucket', Key: 'somekey'}).promise()
}
这是我的测试脚本:
const chai = require('chai')
const chaiAsPromised = require('chai-as-promised')
const AWS = require('aws-sdk-mock')
const myFunc = require('./myModule')
chai.use(chaiAsPromised)
const expect = chai.expect
chai.should()
describe('Get MMS API Key', function () {
before(function () {
AWS.mock('S3', 'getObject', function (params, callback) {
callback(null, 'dummy-data')
})
})
it('Should get dummy data', function () {
myFunc().should.eventually.equal('dummy-data')
})
after(function () {
AWS.restore('S3', 'getObject')
})
})
想法?
我也遇到了同样的问题。请检查节点模块 -> aws-sdk 版本。我的是 2.6.2,但没有用。
临时修复是使用 aws-sdk 2.5.5 版本。
可能很快他们就会修复所有版本,如 aws-sdk-mock 模块中所述。 aws-sdk-mock 应该适用于所有大于 2.3.0 的 aws-sdk 版本。
我也遇到了同样的问题,但我试图模拟 DynamoDB 而不是 S3。已经记录了一个相同的问题。该错误现已通过最新版本的 aws-sdk (v2.6.4) 修复。如果你给它拍摄指向最新版本 2.6.4 会很棒。
谢谢,
再德
首先,我没有使用 lambda,所以我相信 this thread 不是同一个问题。
我在 before
挂钩中遇到此错误:
TypeError: Attempted to wrap undefined property S3 as function
at checkWrappedMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:78:29)
at Object.wrapMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:121:21)
at Object.stub (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/stub.js:67:26)
at mockService (node_modules/aws-sdk-mock/index.js:67:27)
at Object.AWS.mock (node_modules/aws-sdk-mock/index.js:43:5)
at Context.<anonymous> (myModule.spec.js:14:9)
我以前从未使用过这个模块,我对 sinon.js 也没有太多经验。
这是我的模块:
var AWS = require('aws-sdk')
const https = require('https')
module.exports = function () {
var s3 = new AWS.S3({
httpOptions: {
agent: new https.Agent()
},
signatureVersion: 'v4'
})
return s3.getObject({Bucket: 'somebucket', Key: 'somekey'}).promise()
}
这是我的测试脚本:
const chai = require('chai')
const chaiAsPromised = require('chai-as-promised')
const AWS = require('aws-sdk-mock')
const myFunc = require('./myModule')
chai.use(chaiAsPromised)
const expect = chai.expect
chai.should()
describe('Get MMS API Key', function () {
before(function () {
AWS.mock('S3', 'getObject', function (params, callback) {
callback(null, 'dummy-data')
})
})
it('Should get dummy data', function () {
myFunc().should.eventually.equal('dummy-data')
})
after(function () {
AWS.restore('S3', 'getObject')
})
})
想法?
我也遇到了同样的问题。请检查节点模块 -> aws-sdk 版本。我的是 2.6.2,但没有用。 临时修复是使用 aws-sdk 2.5.5 版本。 可能很快他们就会修复所有版本,如 aws-sdk-mock 模块中所述。 aws-sdk-mock 应该适用于所有大于 2.3.0 的 aws-sdk 版本。
我也遇到了同样的问题,但我试图模拟 DynamoDB 而不是 S3。已经记录了一个相同的问题。该错误现已通过最新版本的 aws-sdk (v2.6.4) 修复。如果你给它拍摄指向最新版本 2.6.4 会很棒。
谢谢, 再德