20、无服务器应用的测试、部署与监控

无服务器应用测试与部署指南

无服务器应用的测试、部署与监控

1. 模拟外部服务

在进行单元测试时,有时无法直接对 Lambda 函数进行测试,因为该函数可能与外部服务交互,如发送通知或在数据库中持久化数据,此时它不能被视为一个独立的逻辑单元。为了进行单元测试,需要通过模拟(Mocking)来移除这些依赖。

模拟是构建一个对象来模拟另一个对象的行为。例如,在测试处理信用卡支付的外部服务时,不希望处理诸如连接问题等意外事件,可创建一个模拟对象来模仿预期行为。

要实现模拟,需将业务逻辑与外部服务分离,这样有助于编写单元测试,降低对云服务的依赖,方便未来从一个云提供商迁移到另一个云提供商。

以下是一个业务逻辑和服务未清晰分离的代码示例:

const db = require('db');
const notifier = require('notifier');
module.exports.saveOrder = (event, context, callback) => {
  db.saveOrder(event.order, (err) => {
    if (err) {
      callback(err);
    } else {
      notifier.sendEmail(event.email, callback);
    }
  });
};

该代码接收订单信息,将其保存到数据库,并发送电子邮件通知。存在两个主要问题:代码与输入绑定,且无法在不触发对数据库和通知服务请求的情况下对 Lambda 函数的内部内容进行单元测试。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值