首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws KMS模拟节点js

aws KMS模拟节点js
EN

Stack Overflow用户
提问于 2020-03-12 21:47:50
回答 1查看 777关注 0票数 0

我正在尝试使用aws sdk mock在node js中模拟KMS,但对我来说,这根本不是模拟。它调用真实的KMS并获取实际的加密密钥。

代码语言:javascript
复制
const AWS = require('aws-sdk-mock');
const params = {
    CiphertextBlob: Buffer.from(someEncryptedKey, 'base64')
};
AWS.mock('KMS', 'decrypt', function (params, callback) {
    callback(null, new Buffer('116')[37, 80, 68, 56, 78, 87]);
});

我不确定我的代码中有什么错误。我找不到任何好的模仿KMS的例子。我可以尝试Sinon,但我不想这样做,因为理想情况下,这应该会产生模仿的魔力。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-17 03:42:06

测试中没有任何错误。当你尝试模拟,并且你的API版本在你的代码中被全局声明时,你会看到这个问题,这是模拟的问题。

我只是在函数内的实际代码中移动了版本声明。我不知道为什么会发生这种情况,但在函数内移动API版本后,mocking开始工作。

我从来不喜欢更改单元测试的代码,但使用AWS SDK mock时,我不得不这样做。

const encryptDecrypt =异步密钥=> {

//这需要在函数中//如果这是全局声明的,并且您试图为它编写单元测试,则永远不会起作用。const kms =新AWS.KMS({apiVersion:'2014-11-01'});

//加密

//解密};

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60655480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档