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

250
Vistas
¿Cómo simular/reemplazar la función getter del objeto con Jest?

En Sinon puedo hacer lo siguiente:

 var myObj = { prop: 'foo' }; sinon.stub(myObj, 'prop').get(function getterFn() { return 'bar'; }); myObj.prop; // 'bar'

Pero, ¿cómo puedo hacer lo mismo con Jest? No puedo simplemente sobrescribir la función con algo como jest.fn() , porque no reemplazará al getter

"no se puede establecer el valor de get"

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

0

Para cualquier otra persona que se encuentre con esta respuesta, Jest 22.1.0 introdujo la capacidad deespiar los métodos getter y setter .

Editar: como en la respuesta de scieslak a continuación, debido a que puede espiar los métodos getter y setter, puede usar simulacros de Jest con ellos, al igual que con cualquier otra función:

 class MyClass { get something() { return 'foo' } } jest.spyOn(MyClass, 'something', 'get').mockReturnValue('bar') const something = new MyClass().something expect(something).toEqual('bar')
over 4 years ago · Santiago Trujillo Denunciar

0

Podrías usar Object.defineProperty

 Object.defineProperty(myObj, 'prop', { get: jest.fn(() => 'bar'), set: jest.fn() });
over 4 years ago · Santiago Trujillo Denunciar

0

Si solo te importa espiar, busca la respuesta de @Franey. Sin embargo, si realmente necesita agregar un valor para el getter, así es como puede hacerlo:

 class Awesomeness { get isAwesome() { return true } } describe('Awesomeness', () => { it('is not always awesome', () => { const awesomeness = new Awesomeness jest.spyOn(awesomeness, 'isAwesome', 'get').mockReturnValue(false) expect(awesomeness.isAwesome).toEqual(false) }) })
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