Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

330
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda