【问题标题】:AWS Cognito MockAWS Cognito 模拟
【发布时间】:2016-05-02 16:08:04
【问题描述】:

我想为我的基于 nodejs 的 API 编写 BDD 测试,该 API 使用 AWS cognito 作为用户身份验证服务,但我不想在每次构建运行时都使用真正的 cognito 服务。

是否有一种简单而优雅的方式来模拟 Cognito 调用。

使用的框架:

  • Nodejs (Hapi.js)
  • 用于 nodejs 的 aws-sdk

【问题讨论】:

  • Amazon Cognito 不是用户身份验证服务。为了编写测试,您可以使用任何流行的模拟库来模拟 Cognito 客户端。
  • Cognito 针对 facebook、g+ 验证您的令牌……所以当您发送令牌时,它是一种身份验证。我知道有很多流行的库。我的问题是关于我不知道的模拟 aws-cognito 的更好方法

标签: node.js amazon-web-services aws-sdk hapijs amazon-cognito


【解决方案1】:

我们创建了一个 aws-sdk-mock npm 模块,它模拟了所有 AWS 开发工具包服务和方法。 https://github.com/dwyl/aws-sdk-mock

它真的很容易使用。只需使用服务、方法和存根函数调用 AWS.mock。

AWS.mock('CognitoIdentityServiceProvider', 'theCallYouWantToMock', function(params, callback) {
    callback(null, 'success');
});

然后在测试后通过调用恢复方法:

AWS.restore('CognitoIdentityServiceProvider', 'theCallYouWantToMock');

【讨论】:

  • 很好,它也适用于 DynamoDB.DocumentClient 吗?
  • @amgohan 它适用于 aws-sdk 中的每个服务和方法。
【解决方案2】:

您是如何最终嘲笑 Cognito 服务的?我没有看到任何文档。

是不是有点像

AWS.mock('COGNITO', params, callback);

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 2018-06-26
    • 2021-04-25
    • 2022-12-20
    • 2017-11-01
    • 2019-04-30
    • 2018-12-16
    • 2021-06-23
    • 2019-03-04
    相关资源
    最近更新 更多