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