개요
테스트를 진행하다보니 쓸데없는 로그가 찍히는 경우가 생겼다.
특히 문제가 되는 건 아래와 같이 로그를 사용할 때였다.
# some.service.ts
import { Injectable, Logger } from '@nestjs/common';
@Injectable()
export class SomeService {
private readonly logger = new Logger(SomeService.name);
}
How to
이것도 해결은 간단했는데, 생각보다 문서 찾는데 헤맸다.
# some.service.spec.ts
import { MockLogger } from '{path}/logger.service.mock';
describe('SomeService', () = {
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
...
})
.setLogger(new MockLogger())
.compile();
});
});
MockLogger의 구현도 간단하다.
# logger.service.mock.ts
import { LoggerService } from '@nestjs/common';
export class MockLogger implements LoggerService {
error(message: any, ...optionalParams: any[]): any {
// do nothing
}
log(message: any, ...optionalParams: any[]): any {
// do nothing
}
warn(message: any, ...optionalParams: any[]): any {
// do nothing
}
}
이제 테스트 과정에서 쓸데없는 로그를 보지 않아도 된다.
'개발공부 > NestJS' 카테고리의 다른 글
[Jest] Mock Sentry functions (0) | 2022.06.25 |
---|---|
[NestJS] Controller로 Request를 받아보자! (0) | 2021.09.11 |
[NestJS] Modules & Controllers & Providers (3) (0) | 2021.09.11 |
[NestJS] Modules & Controllers & Providers (2) (0) | 2021.09.11 |
[NestJS] Modules & Controllers & Providers (1) (0) | 2021.09.10 |