web-dev-qa-db-ja.com

AWS CDKコードのユニットテストを行うにはどうすればよいですか?そして、我々は?

私が見た例に基づくと、コードアサーションは、json cfテンプレートとcdk synthで生成されたテンプレートとの予想です。

予想されるjson cfテンプレートをどのように設定しますか?

  • 手動で作成すると、cdkを使用する目的に反します。
  • Cdkシンセ出力をコピーして貼り付けるだけでは、単体テストの目的に反します。

とはいえ、CDKコードの単体テストを行う目的はありますか?多分私はここでアイデアを逃しています。指摘してください。

4
froi

私が使用するアプローチは、作成されたはずのリソースを使用するように委任された別のプロジェクトを作成することです。

したがって、cdk-init-clusterプロジェクトから、cdkライブラリを使用して必要なリソースをすべて作成します。 [〜#〜] deploy [〜#〜]フェーズの後、cdk-init-cluster-testを実行します以前にcdk-init-clusterプロジェクトから作成されたリソースに入力/クエリ/使用するために委任されたモジュール。

このアプローチは、次のようないくつかのタイプのリソースでのみ役立ちます。

  • S3バケット
  • ラムダ
  • AppSync
  • DynamoDBテーブル

テストプロジェクトは次のことを担当します。

  • DynamoDBテーブルにデータを入力し、データを取得します。
  • ダミーデータを使用してLambda関数を呼び出す
  • 権限の動作を確認するための正しいデータでラムダ関数を呼び出す
  • (上記のすべてのリソースをラップする)appsyncを呼び出して結果を確認します

次に、テストのために挿入されたデータを削除します。例外が発生しない場合、テストは合格です。

0
alessiosavi