在 NodeJS + Typescript AWS Lambda 上进行单元测试



哪一个是使用TypeScript对在NodeJS中实现的lambda进行单元测试的最佳方式,如下所示:

import {Callback} from "aws-lambda";
export interface BinaryEvent {
number1: number
number2: number
}
export interface Result {
result: number
}
export type BinaryOperation = (number1: number, number2: number) => number;
export type BinaryOperationHandler = ({number1, number2}: BinaryEvent, context: any, callback: Callback<Result>) => void;
export const addition: BinaryOperationHandler = ({number1, number2}, context, callback) => {
setTimeout(() => callback(null, {result: (number1 + number2)}), 1000);
}

我设法找到了一种使用笑话进行单元测试的方法,使用如下jest.fn()

import {addition} from "./index";
it('Sums 2 numbers', async() => {
const number1 = 3, number2 = 2, callback = jest.fn();
await addition({number1, number2}, {}, callback);
expect(callback.mock.calls.length).toBe(1);
expect(callback.mock.calls[0][1].result).toBe(number1 + number2);
})

github存储库中提供了一个完整的工作虚拟示例:https://github.com/jvillane/aws-sam-lambda-jest-unit-test

最新更新