TIL,WIL(일간,주간 회고)

jest로 Logger.log 테스트

worldint 2023. 4. 24. 18:49

로그가 잘뜨는지 확인 하는 테스트코드 작성

컨트롤러.ts

@Controller()
export class LoggerTestController {
  readonly logger = new Logger('LoggerTest.contoller');

  test(){
  this.logger.log("이게 나와야된다");
  return { value:"리턴은 이거"};
  }
 
}

 

컨트롤러.spec.ts

describe('컨트롤러', () => {
  let controller: LoggerTestController;
  let service: LoggerTestService;

  beforeAll(async () => {
    const MockModule: TestingModule = await Test.createTestingModule({
      controllers: [LoggerTestController],
      providers: [
        {
          provide: LoggerTestService,
          useClass: MockLoggerTestService,
        },
      ],
    }).compile();

    controller = MockModule.get<LoggerTestController>(LoggerTestController);
    service = MockModule.get<LoggerTestService>(LoggerTestService);
  });

  it('post성공했을 때 로그 띄워줘야함', async () => {
    const spylog = jest.spyOn(controller.logger, 'log').mockReturnValue();
    await controller.test();
    expect(spylog).toHaveBeenCalledWith('OO님이 상품을 등록을 하셨습니다');
  });
});