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

619
Vistas
Unidad de nodo prueba la función AWS Lambda usando context.succeed()

Estoy tratando de probar mi función lambda localmente, usando mocha, chai y chai-as-promised en lo que respecta a async. Mi lambda usa el formato AWS context.succeed para devolver el resultado, no la devolución de llamada, y necesito mantenerlo así. Tengo una prueba a continuación, que devuelve un código de estado de 200, pero cuando espero que sea 400, aún pasa la prueba (falso positivo). No se muestran los registros colocados en la función de éxito del contexto personalizado, lo que indica que no se está golpeando, o mi comprensión de cómo funciona context.succeed es un poco incorrecta. Cualquier sugerencia sería muy apreciada.

Nota: la lambda funciona bien, la prueba es todo lo que tengo un problema.

Aquí está el código simple que tengo hasta ahora. Básicamente, llamo a mi función lambda, paso un evento y contexto como se esperaba. Cuando se llama a context.succeed, debe probar el resultado pasado al contexto.

 'use strict'; const myHandler = require('../lambdaHandler'); const chai = require('chai'); const expect = chai.expect; const chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); describe('myHandler.handler should return with expected statusCodes', () => { it('should return a 200 statusCode', () => { myHandler.handler(event, { succeed : (data) => { expect(data).to.eventually.have.property('statusCode'); expect(data.statusCode).to.eventually.equal(400); }, fail : (data) => { expect(data).to.have.property('statusCode'); }, }); }); });
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Te sugiero que leas este artículo:

https://blog.atomdata.io/serverless-applications-continuous-delivery-with-aws-lambda-and-api-gateway-part-1-unit-tests-e517aa1cd09e

Lo que explica cómo estos muchachos están probando la unidad de sus lambda.

over 4 years ago · Santiago Trujillo Denunciar

0

Esto es lo que haría:

 'use strict'; const myHandler = require('../lambdaHandler'); const chai = require('chai'); const expect = chai.expect; const chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); describe('myHandler.handler should return with expected statusCodes', () => { it('should return a 200 statusCode', (done) => { try{ myHandler.handler(event, { succeed : (data) => { expect(data).to.eventually.have.property('statusCode'); expect(data.statusCode).to.eventually.equal(400); done(); }, fail : (data) => { expect(data).to.have.property('statusCode'); done(); }, }); } catch(err){ done(err.message); } }); });
over 4 years ago · Santiago Trujillo Denunciar

0

Terminé yendo con lambda-tester: https://github.com/vandium-io/lambda-tester . El único inconveniente es que no es compatible con la versión Node> 4.3.2

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