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

326
Vistas
Burlándose de dynamodb `ValidationException` en la prueba de unidad Jest

Tengo una clase MyCar que tiene una función, digamos getAllCars() .

 export default class MyCar { function getAllCars(){ try { /** * logic and query to dynamodb database to get all cars * These Car objects will be fetched from db. */ const result = [Car, Car, Car, Car]; return result; catch (error) { if(error.code === 'ValidationException') { throw error; } } } }

Esta función tiene lógica para consultar la tabla dynamodb y devolver una respuesta paginada. En uno de los escenarios, dynamodb lanza una ValidationException . Esta excepción es capturada por el bloque catch(). Quiero simular esta ValidationException en mi caso de prueba de unidad para que, si ocurre esta excepción, pueda devolver un mensaje de error personalizado.

El objeto de excepción devuelto es este,

 { "message": "The provided starting key does not match the range key predicate", "code": "ValidationException", "time": {}, "requestId": "xxxx-xxxx-xxxx-xxxx-xxxx", "statusCode": 400, }

Lo que he hecho por ahora es esto,

 jest.spyOn(MyCar.prototype, 'getAllCars') .mockImplementation(() => { throw { code: 'ValidationException' }; });

y mi expectativa está por debajo,

 expect(async () => { return myCar.getAllCars() }).rejects.toHaveProperty('code', 'ValidationException');

Lo que quiero hacer es, en lugar de lanzar el objeto { code: 'ValidationException' } en la implementación simulada(), quiero lanzar la ValidationException real de dynamodb. ¿Hay alguna forma en que pueda hacerlo?

Para otras excepciones, como ItemNotFoundException , puedo importarlas directamente desde @aws/dynamodb-data-mapper . Algo como esto,

 import { ItemNotFoundException } from '@aws/dynamodb-data-mapper'; jest.spyOn(MyCar.prototype, 'getAllCars') .mockImplementation(() => { throw ItemNotFoundException; });

Sería ideal si pudiera importar la excepción y simularla o encontrar algún paquete que me permitiera hacerlo.

Aquí hay un enlace de Excepciones para el manejo de errores de dynamodb con DynamoDB

about 4 years ago · Juan Pablo Isaza
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