[NestJS] e2e테스트 Jest 테스트 시 DB 초기화하는 법Node.js2022. 10. 7. 16:00
Table of Contents
e2e 테스트는 매번 데이터베이스를 초기화해줄 필요가 있습니다.
다만.. 저는 Jest를 쓰는데 따로 초기화 해주는 함수가 없었습니다.
(있으면 알려주세요!)
그런 이유로 방법 계속 찾아봤는데 따로 메소드를 제공해주지 않아서 팁 정도를 찾아서 이를 공유하고자 합니다.
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import ormConfig from './orm-config';
import { AppController } from '@app/app.controller';
import { UserModule } from '@app/user/user.module';
import { User } from '@domain/user/user.entity';
describe('App Module Integration', () => {
let app;
beforeAll(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [
TypeOrmModule.forFeature([User]),
TypeOrmModule.forRoot(ormConfig),
UserModule,
],
controllers: [AppController],
}).compile();
app = moduleFixture.createNestApplication();
const connection = app.get(Connection);
await connection.synchronize(true);
await app.init();
});
afterEach(async () => {
const connection = app.get(Connection);
await connection.synchronize(true);
});
it('e2e 테스트 작동 확인', () => {
return request(app.getHttpServer())
.get('/hello?name=world')
.expect(200)
.expect('Hello world!');
});
});
e2e테스트 구조는 https://github.com/mutoe/nestjs-realworld-example-app/tree/master/test 참고했습니다.
afterEach(async () => {
const connection = app.get(Connection);
await connection.synchronize(true);
});
https://github.com/nestjs/nest/issues/409#issuecomment-390569628
강제로 데이터베이스를 동기화때려서 초기화했습니다..
'Node.js' 카테고리의 다른 글
[NestJS] 에서 puppeteer 사용하기 (0) | 2022.10.22 |
---|---|
[NestJS] Swagger 바디 타입 여러개 명시하기 (0) | 2022.10.17 |
NestJS + Flutter 카카오 OAuth 로그인 구현하기 (0) | 2022.09.24 |
[NestJS] EntityMetadataNotFound Error: No metadata for * was found. (0) | 2022.08.12 |
[NestJS] Can't find module 'entity' from 'service.ts' 에러 (0) | 2022.08.12 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com