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

191
Visualizações
Mock Response express in nestjs

I have a simple controller

export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(@Res() res: Response) {
    return res.json({"messagge":"this.appService.getHello()");
  }
}

and I want to test it with unit test.


import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Response } from 'express';

describe('AppController', () => {
  let appController: AppController;
  let responseObject = {
    message: 'This is a simple example of item returned by your APIs.'
  };
  const response: Partial<Response> = {
    json: jest.fn().mockImplementation((result) => {
      responseObject = result;
    })
  }
  

  beforeEach(async () => {
    const app: TestingModule = await Test.createTestingModule({
      controllers: [AppController],
      providers: [AppService],
    }).compile();

    appController = app.get<AppController>(AppController);
  });

  describe('root', () => {
    it('should return my string', () => {
      let res = appController.getHello(response as Response);
        console.log("RES",res);

    });
  });
});

I need to mock Response, but I get undefined.

UPDATE

import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Response } from 'express';

describe('AppController', () => {
  let appController: AppController;
  let responseObject = {
    status: 200,
    message: 'Hello World!'
  };

  const response: Partial<Response> = {
    status: jest.fn().mockImplementation().mockReturnValue(200),
    json: jest.fn().mockImplementation().mockReturnValue(responseObject),
  }

  beforeEach(async () => {
    const app: TestingModule = await Test.createTestingModule({
      controllers: [AppController],
      providers: [AppService],
    }).compile();

    appController = app.get<AppController>(AppController);
  });

  describe('root', () => {
    it('should return "Hello World!"', () => {
      let res = appController.getHello(response as Response);    
      expect(res).toEqual(response.json())
    });
  });
});

I modified my code as above, but now I get always hello world even if my controller has a different value

  @Get()
  getHello(@Res() res: Response) {
    return res.json({"message":"KO"});
    // return res.status(HttpStatus.OK).json(this.appService.getHello());
  }
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