Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
¿Cómo hacemos pruebas unitarias para el código AWS CDK? ¿Y deberíamos?

Según los ejemplos que veo, las aserciones de código se esperan de la plantilla json cf frente a la plantilla generada por el sintetizador cdk.

¿Cómo configuramos la plantilla json cf esperada?

  • Si lo creamos manualmente, eso frustra el propósito de usar cdk.
  • Si solo copiamos y pegamos la salida del sintetizador cdk, eso anula el propósito de la prueba unitaria.

Habiendo dicho eso, ¿hay algún propósito en tener pruebas unitarias para el código CDK? Tal vez me estoy perdiendo la idea aquí. Por favor, indícalo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

aws-cdk tiene una biblioteca de utilidades de prueba que son útiles para afirmar contra pilas. El repositorio de cdk lo usa para muchas de sus propias pruebas unitarias.

https://www.npmjs.com/package/@aws-cdk/assert

Esto le permite hacer algo como

 // jest test('configurable retention period cannot exceed 14 days', () => { const stack = new MyStack(); expect(stack).to(haveResource('AWS::SomeService::SomeResource', { SomePropertyOnResource: 'some-value-it-should-have' })); });

Esto solo es compatible con las aplicaciones de CDK escritas en mecanografiado a partir de ahora, pero el plan es admitir eventualmente todos los idiomas compatibles con cdk.

Si debe hacer esto o no, por lo general es similar a preguntar si debe realizar una prueba unitaria de cualquier base de código. Si tiene mucha lógica comercial compleja que hace cosas como crear recursos de forma condicional o cambiar el comportamiento de sus aplicaciones, probablemente valga la pena obtener algo de cobertura en esos lugares. Si su aplicación es esencialmente un montón de declaraciones estáticas sin condicionales, bucles, etc., tal vez pueda arreglárselas con solo ejecutar cdk diff al realizar cambios y verificar manualmente los cambios esperados.

Si está escribiendo construcciones personalizadas para reutilizarlas en diferentes aplicaciones de cdk, probablemente sea una buena idea realizar pruebas unitarias.

Algunos documentos relevantes https://docs.aws.amazon.com/cdk/latest/guide/testing.html

over 4 years ago · Santiago Trujillo Denunciar

0

Un enfoque que uso es crear un proyecto diferente delegado para usar los recursos que espero que se hayan creado.

Entonces, desde el cdk-init-cluster , simplemente creo todos los recursos necesarios usando la biblioteca cdk . Entonces, después de la fase de IMPLEMENTACIÓN , ejecuto el cdk-init-cluster-test que está delegado para completar/consultar/usar los recursos creados previamente a partir del cdk-init-cluster .

Este enfoque solo puede ayudar con algunos tipos de recursos, tales como:

  • cubeta S3
  • lambda
  • sincronización de aplicaciones
  • Tabla de DynamoDB

El proyecto de prueba está a cargo de:

  • Rellene la tabla de DynamoDB y recupere los datos.
  • Llame a la función Lambda con datos ficticios
  • Llame a la función lambda con los datos correctos para verificar el comportamiento de los permisos
  • Llame a appsync (que envuelve todos los recursos anteriores) y verifique el resultado

Luego, elimino los datos insertados para la prueba. Si no se producen excepciones, se pasa la prueba.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda