[英]Unit Testing on a NodeJS + Typescript AWS Lambda
Which one is the best way to unit test a lambda implemented in NodeJS using TypeScript like this dummy one:哪一种是使用 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);
}
I managed to find a way to unit testing using jest using jest.fn()
like this:我设法找到了一种使用 jest 使用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);
})
A complete working dummy example is available in the github repo: https://github.com/jvillane/aws-sam-lambda-jest-unit-test github 存储库中提供了一个完整的工作虚拟示例: https://github.com/jvillane/aws-sam-lambda-jest-unit-test
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.