wam
w__am 개발노트
wam
  • 분류 전체보기 (165)
    • CS 지식 (10)
      • 자료구조 (0)
      • 알고리즘 (0)
      • 컴퓨터 구조 (0)
      • 운영체제 (0)
      • 네트워크 (7)
      • 데이터베이스 (0)
      • 디자인 패턴 (3)
    • Frontend (131)
      • Three.js (64)
      • NPM (1)
      • Nest.js (19)
      • React (10)
      • Apollo (7)
      • TypeScript (2)
      • JavaScript (12)
      • HTML, CSS (1)
      • Jest (3)
      • E2E (5)
      • Cypress (7)
    • Database (12)
      • TypeORM (12)
    • IT 지식 (8)
      • 클라우드 서비스 (3)
      • 네트워크 (1)
      • 데이터 포맷 (2)
      • 기타 (2)
    • IT Book (2)
    • 유용한 사이트 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 🐱 Github

인기 글

태그

  • threejs 개발 할 때 도움을 줄 수 있는 유틸리티
  • joi 에러
  • Interface
  • 초기 환경설정
  • getdelta()
  • 디자인 패턴
  • gridhelper
  • Decorators
  • mapped types
  • 렌더링 성능 최적화
  • type-graphql
  • math.sin()
  • reactive variables
  • 함수 선언문
  • 원형적인 움직임
  • 데이터 포맷
  • 삼각함수
  • three.js 구성 요소
  • axeshelper
  • 스코프
  • isabstract
  • e.preventdefault()
  • 함수의 범위
  • react 성능 최적화
  • math.cos()
  • API
  • 오프-프레미스(off-premise) 방식
  • getelapsedtime()
  • 함수 리터럴
  • 함수 표현식

최근 글

관리자

글쓰기 / 스킨편집 / 관리자페이지
hELLO · Designed By 정상우.
wam

w__am 개발노트

[초기설정] E2E 테스트를 설정하는 예제 코드 설명
Frontend/E2E

[초기설정] E2E 테스트를 설정하는 예제 코드 설명

2024. 7. 15. 18:37

 

유저 E2E 파일 예시

test/user.e2e-spec.ts

import { Test, TestingModule } from "@nestjs/testing";
import { INestApplication } from "@nestjs/common";
import * as request from "supertest";
import { AppModule } from "../src/app.module";

describe("UserModule (e2e)", () => {
  let app: INestApplication;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      // 기본적으로 전체 모듈인 AppModule을 import 하기
      imports: [AppModule],
    }).compile();

    app = module.createNestApplication();
    await app.init();
  });
  
  afterAll(async () => {
    app.close();
  });

  it.todo("해야할 것");
});
  • 기본적으로 전체 모듈인 AppModule을 import 하기

    • 앱 모듈안에 모든 모듈이 작성되어있다.

    • 전체 애플리케이션을 로드해서 Resolver를 테스트 할 수 있기 때문에 앱모듈 임포트해주기

 

 

코드 설명

test/user.e2e-spec.ts

// NestJS에서 제공하는 테스트 유틸리티 가져오기
import { Test, TestingModule } from "@nestjs/testing";

// NestJS 애플리케이션의 인스턴스를 나타내는 인터페이스이다
import { INestApplication } from "@nestjs/common";

// HTTP 서버 테스트를 위한 라이브러리로, NestJS 애플리케이션에 대한 요청을 시뮬레이트한다.
import * as request from "supertest";

// 애플리케이션의 루트 모듈을 가져오기, 이 모듈에는 애플리케이션의 모든 구성 요소가 포함되어 있다.
import { AppModule } from "../src/app.module";

// 테스트 수트를 정의 : describe("UserModule (e2e)", () => { ... })
// 사용자 모듈의 e2e 테스트를 그화하기 위한 것
describe("UserModule (e2e)", () => {
	// NestJS 애플리케이션 인스턴스를 저장
  let app: INestApplication;

	//  테스트가 실행되기 전에 실행될 설정 코드를 정의
  beforeEach(async () => {
	  // Test.createTestingModule 메서드를 사용 테스트 모듈을 생성한다.
    const module: TestingModule = await Test.createTestingModule({

			// AppModule을 포함시켜 전체 애플리케이션 모듈을 가져온다.
      imports: [AppModule],

    // compile 메서드를 호출하여 모듈을 컴파일한다.
    // 이 단계에서는 종속성 주입이 설정되고 모듈이 완전히 초기화된다.
    }).compile();

		// 컴파일된 모듈을 기반으로 NestJS 애플리케이션 인스턴스를 생성한다.
    app = module.createNestApplication();
    
    // 애플리케이션을 초기화
    // 내부적으로 필요한 설정을 모두 완료하고 서버를 준비 상태로 만든다.
    await app.init();
  });
  
  // test가 돌아간 후에 application이 종료된다
  afterAll(async () => {
    // application을 종료하는 코드
    app.close();
  });
});
  • 이 코드는 E2E 테스트 환경을 설정하여 테스트가 실행될 때마다 새로운 NestJS 애플리케이션 인스턴스를 생성하고 초기화한다.

  • 이를 통해 각 테스트는 독립적으로 실행된다.

  • 실제 애플리케이션과 유사한 환경에서 테스트할 수 있다.

 

 

저작자표시 변경금지 (새창열림)

'Frontend > E2E' 카테고리의 다른 글

Resolver 테스트 사용법 예제  (0) 2024.07.15
[초기설정] 테스트가 끝난 후 데이터베이스 내용 drop하기  (0) 2024.07.15
[초기설정] E2E 설정 구성, 경로 변경하기  (0) 2024.07.15
E2E (End-to-End)  (0) 2024.07.15
    'Frontend/E2E' 카테고리의 다른 글
    • Resolver 테스트 사용법 예제
    • [초기설정] 테스트가 끝난 후 데이터베이스 내용 drop하기
    • [초기설정] E2E 설정 구성, 경로 변경하기
    • E2E (End-to-End)
    wam
    wam

    티스토리툴바