Tìm kiếm trang web

node.js - Làm thế nào để viết kiểm thử đơn vị cho một hàm Lambda TypeScript?


Tôi có một hàm Lambda hoạt động và tôi đang cố gắng viết một bài kiểm tra đơn vị cho nó. Làm thế nào để tôi giả lập đúng các đối tượng Context và Callback để kiểm tra phản hồi của hàm?

import Game from "../classes/Game";
import HttpResponse from "../classes/HttpResponse";
import { Handler, Context, Callback } from 'aws-lambda';
import { DataMapper } from '@aws/dynamodb-data-mapper';
import DynamoDB = require('aws-sdk/clients/dynamodb');

const client = new DynamoDB({region: 'us-west-2'});
const mapper = new DataMapper({client});

const put: Handler = (event: any, context: Context, callback: Callback) => {
    if (!validateInput) {
        const errMsg = `Missing data in input: ${event}`;
        const response: HttpResponse = {
            statusCode: 400,
            body: errMsg
        }

        callback(errMsg, response);
    }

    const game: Game = new Game();
    game.id = event.id;
    game.name = event.name;
    game.imageUrl = event.imageUrl;

    mapper.put({item: game}).then(() => {
        const response: HttpResponse = {
            statusCode: 200,
            body: `Saved new game to DynamoDB: ${JSON.stringify(game)}`
        }

        callback(undefined, response);
    });
}

function validateInput (input: any): boolean {
    if (input && input.id && input.name) {
        return true;
    } 

    return false;
}

export { put };

Bài viết liên quan