Jest

박선우·2023년 2월 24일
0

CS 스터디

목록 보기
48/53
post-thumbnail

🌼 Jest

  • 어떤 기능을 추가할 때 가장 우려되는 점은 해당 기능이 기존 코드에 어떤 영향을 미칠지 알지 못한다.
  • 우리가 서비스를 운영한다고 가정하고 생각해보면, 사용자들의 피드백을 참고하여 코드를 수정
  • 새로운 기능 추가 => 기존 코드에 영향력 행사 => 에러발생
  • 어디서 에러가 났는지 모든 코드를 실행하기 전까지는 알지 못한다.

⛔️ Nest , Jest (test코드 예제)

// 1. 한개 테스트 하기
it('더하기 테스트', () => {
    const a = 1;
    const b = 2;

    expect(a + b).toBe(3);
});

// 2. 여러개 묶음으로 테스트하기
describe('나의 테스트 그룹', () => {
    it('곱하기 테스트', () => {
        const a = 1;
        const b = 2;

        expect(a * b).toBe(2);
    });

    it('빼기 테스트', () => {
        const a = 1;
        const b = 2;

        expect(a - b).toBe(-1);
    });

    it('더하기 테스트', () => {
        const a = 1;
        const b = 2;

        expect(a + b).toBe(3);
    });
});

// 3. 상품구매하기 테스트 예제
describe('상품 구매 테스트', () => {
    // beforeAll(() => {}); // 모든 it들 실행하기 전에 딱 1번 실행(ex, 로그인등)
    // beforeEach(() => {}); // 각각의 it들 실행하기 전에 매번 실행(ex, 초기값, 초기화 등)

    it('돈 검증하기', () => {
        const result = true; // 돈이 있다고 가정

        expect(result).toBe(true);
    });

    it('상품 구매하기', () => {
        const result = true; // 상품을 구매했다고 가정

        expect(result).toBe(true);
    });
});

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

describe('AppController', () => {
    let appController: AppController;

    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!"', () => {
            expect(appController.getHello()).toBe('Hello World!');
        });
    });
});
profile
코린이 열심히 배우자!

0개의 댓글