如何使用构造函数和依赖项测试无服务器的lambda函数?

时间:2017-04-30 15:40:31

标签: node.js tdd aws-lambda sinon serverless-framework

如何将构造函数存根以对已接收函数调用的构造对象传递期望?

我正在使用无服务器,我有一个lambda函数,它具有依赖关系并通过预定事件每分钟运行一次。我想专注于lambda函数的行为,所以我希望我的一个测试如下 - >它从消息队列中取消消息。测试将验证我的队列是否已收到函数dequeueMessages - 就是这样。这是我的样本lambda:

module.exports = function(event, context, callback) {
  var queue = new Queue();

  queue.dequeueMessages(params).then(messages => {
    var client = new DataFetcher();

    return client.fetchData(messages).then(data => {
      var database = new Database();

      return database.persist(data);
    })
  }
}

我知道那里还有其他依赖项,但我只想集中精力让第一个测试通过,而我正在努力使用new Queue来解决构造对象队列调用的断言#dequeueMessages。我已经探索了sinon并且我已经使用mocha和chai设置了测试,但我只是不知道如何将所有工具放在一起来完成这个非常简单的测试。

1 个答案:

答案 0 :(得分:1)

我想推荐这个article,它涵盖了单元测试AWS lambda函数时非常重要的方面。

我采用了他们这样做的方式。