lambda-tester
Simplifies writing unit tests for AWS Lambda functions using Node.js.
Features
- Verifies correct handler behavior
- Mocks event types with code
- Works asynchronously
- Supports Promises
- Verifies Node.js runtime version
- AWS X-Ray support [experimental]
- Detects resource leaks [experimental]
- Easily integrates with test frameworks (Mocha and Jasmine)
- Handlers can be loaded and removed after execution
- Lightweight and won't impact performance
- Maps the environment variable
LAMBDA_TASK_ROOT
to the application's root - Automatically loads .env files
- Works with Node 10.x, and 12.x
Installation
Install via npm.
npm install lambda-tester --save-dev
Getting Started
Lambda handlers with support for callbacks use the typical Node.js asynchronous signature:
exports { ;}
The following example shows a simple case for validating that the Lambda (handler) was called successfully (i.e. callback( null, result )
:
const LambdaTester = ; const myHandler = handler; ;
If the handler calls callback( err )
, then the test will fail.
Additionally, if one wanted to test for failure, then the following code would be used:
const LambdaTester = ; const myHandler = handler; ;
Note: you must either return the LambdaTester
instance back to the testing
framework or use the await
/async
keywords.
Documentation
Complete documentation can be found in our documentation page.
lambda-tester
Projects Using - vandium - Secures and simplifies AWS Lambda handlers
Feedback
We'd love to get feedback on how you're using lambda-tester and things we could add to make this tool better. Feel free to contact us at feedback@vandium.io
Compatibility
Starting with version 4.0, lambda-tester supports node versions 10 and higher. If you require support for older versions of node, then use a previous version of lambda-tester.