hands-on lab

Snapshot Testing AWS CDK Constructs

Intermediate
30m
52
5/5
This lab is currently under maintenance and unavailable. We are actively working to resolve this issue and we apologize for any inconvenience.

Version 1 of the AWS Cloud Development Kit (AWS CDK) is now in maintenance mode.

Refer to the AWS Cloud Development Kit (AWS CDK) v2 Learning Path for updated CDK v2 Labs and Challenges. 

Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.
Lab description

The AWS Cloud Development Kit can provide infrastructure engineers with the same predictability and repeatability seen in application code development. One way the AWS CDK achieves this is by incorporating the use of construct assertions with the popular Jest JavaScript testing framework. The AWS CDK Assert library contains helpers for writing tests to evaluate the CloudFormation templates that are generated by the CDK project. These testing modules, paired with the practical testing capabilities provided by Jest, allow developers to implement various types of tests including snapshot tests.

A CDK snapshot test begins by rendering an AWS CloudFormation template in JSON to be used as a reference snapshot. Whenever a snapshot test runs, a new template is generated and compared with the initial reference snapshot. If they do not match the test will fail, which can mean one of two things:

  • An update was made to the construct definition that caused an unexpected change in the resulting template
  • The initial reference snapshot needs to be updated to reflect the current version of the construct.

This type of testing is useful as you write your own CDK constructs and allows you to define expectations early on in development, and maintain those requirements as the application grows. 

In this lab, you will discover how the Jest framework works within a CDK project and learn how to implement snapshot tests.

Learning Objectives

Upon completion of this intermediate-level lab, you will be able to:

  • Run and evaluate test results generated with the Jest framework
  • Write snapshot tests to compare stack templates against a baseline

Intended Audience

  • Cloud Architects
  • DevOps Engineers
  • Software Engineers

Prerequisites

Familiarity with the following will be beneficial:

  • AWS Cloud Development Kit
  • TypeScript Programming
  • JavaScript Object Notation (JSON)

The following labs can be used to fulfill the prerequisite:

Environment before
Environment after
About the author
Avatar
Jun Fritz, opens in a new tab
Cloud Labs Developer
Students
39,316
Labs
105
Courses
1
Learning paths
6

Jun is a Cloud Labs Developer with previous experience as a Software Engineer and Cloud Developer. He holds the AWS Certified Solutions Architect and DevOps Engineer Professional certifications. He also holds the AWS Certified Solutions Architect, Developer, and SysOps Administrator Associate certifications. 

Jun is focused on giving back to the growing cloud community by sharing his knowledge and experience with students and creating engaging content. 

Covered topics
Lab steps
Working with Jest and AWS CDK Constructs
Comparing CloudFormation Templates with Snapshot Tests