Tengo un servicio en NestJS que estoy probando usando @nestjs/testing
en Typescript. Pero uno de los métodos depende de otro, me gustaría simular el método dependiente solo para una prueba, por lo que no puedo usar la simulación de la clase ES6, ya que anularía la clase que estoy probando con una simulación.
class UsersService { findMany(ids) { return ids.map(id => this.findOne(id)); } findOne(id) { return this.httpService.get(id); } }
Quiero probar ambos métodos, pero quiero findOne
solo cuando estoy probando findMany
.
Gracias por adelantado.
Quieres usar el espionaje aquí. Busque 'spyOn' en esta documentación: https://docs.nestjs.com/fundamentals/testing cerca de la parte inferior.
Aquí hay un ejemplo que traté de preparar que está relacionado con su código publicado:
test('findMany', () => { const spy = new UsersService; // Here's the key part ... you could replace that "awesome" with something appropriate jest .spyOn(spy, 'findOne') .mockImplementation(() => "awesome"); // Just proving that the mocking worked, you can remove this expect(spy.findOne()).toBe("awesome"); const ids = ["Dio", "Lemmy"]; expect(spy.findMany(ids)).toStrictEqual(["awesome", "awesome"]) });