Loading...

Tips: CDKでスナップショットテストを行う

Technology
Nov 05, 2024

備忘録です。
CDKでスナップショットを行う方法を記載します。

この例ではCDKで InfraStack を作成している前提としております。

test/infra.test.ts ファイルを作成し以下のように入力します。

import * as cdk from 'aws-cdk-lib'
import {InfraStack} from "../lib/infra-stack";
import {Template} from "aws-cdk-lib/assertions";

test('snapshot test for InfraStack', () => {
const app = new cdk.App()
const stack = new InfraStack(app, 'TestInfraStack', {appEnv: 'dev', config: {env: 'dev', appName: 'app_name'}})
const template = Template.fromStack(stack).toJSON()

expect(template).toMatchSnapshot()
})

テストの実行

スナップショットを実行するには以下のコマンドを実行します。

npm run test

スナップショットで作成されるCloudFormationテンプレートの更新

インフラを更新した後にCloudFormationテンプレートをソースファイルに反映します。
これにより、スナップショットテストで比較するテンプレートファイルが更新されます。

スナップショットファイルは test/__snapshots__ ディレクトリに保存されます。
上記ディレクトリに保存されているファイルをGitに含めるようにして下さい。
次回スナップショットテストを実行すると上記ファイルとの比較チェックを行います。Gitで管理させておくと差分も確認が出来るようになります。

スナップショットで作成されるCloudFormationテンプレートを更新するには以下のコマンドを実行します。

npm run test -- -u


関連記事

Top