es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de simular funciones desde un espía de Jasmine?

Estoy utilizando jasmine para crear un objeto espía y devolver un objeto, ¿puedo simular funciones del objeto que estoy devolviendo?

Por ejemplo:

let mockService = jasmine.createSpyObj(['fun']);
mockService.fun.and.returnValue({value: 1});

Estoy intentando simular la función “get” en este ejemplo:

let x = service.fun();
x.get();
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes burlar las funciones del objeto que estás devolviendo. En el ejemplo proporcionado, puedes crear un objeto burlado para el valor devuelto e incluir una función burlada get. Aquí tienes un ejemplo:

    let mockGet = jasmine.createSpy('get').and.returnValue(2);
    let mockReturnValue = { value: 1, get: mockGet };
    let mockService = jasmine.createSpyObj(['fun']);
    mockService.fun.and.returnValue(mockReturnValue);
    
    let x = mockService.fun();
    x.get(); // Esto devolverá 2, ya que hemos burlado la función get
    

    Al crear un objeto burlado con las propiedades y funciones necesarias, podemos devolver este objeto desde el método mockService.fun y asegurarnos de que la función get ha sido correctamente burlada.

Comments are closed.