Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

320
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!