본문 바로가기
내일배움캠프/축구팀 관리 프로젝트

축구팀 관리 프로젝트 19일차 - jest로 dummy data 생성 중, 사용법

by 코드스니펫 2024. 1. 31.
반응형

축구팀 관리 프로젝트 19일차 - jest로 dummy data 생성 중, 사용법

 

jest logo

 

jest로 코드 테스트 및 더미 데이터를 만드는 로직을 작성 중입니다. 제목이 만드는 중이라는 건 아직 다 못 만들었다는 뜻입니다. 기록을 빠르게 마무리하고 다시 못다한 로직은 마무리할 계획입니다. jest의 기본개념과 간단하게 dummy data 만드는 법에 대해 소개하겠습니다.

 

 

jest란

 

jest main page

 

 

Jest

By ensuring your tests have unique global state, Jest can reliably run tests in parallel. To make things quick, Jest runs previously failed tests first and re-organizes runs based on how long test files take.

jestjs.io

 

Jest는 Facebook에서 개발하고 유지 관리하는 JavaScript 테스트 프레임워크입니다. React, Angular, Vue와 같은 다양한 JavaScript 라이브러리 및 프레임워크와 함께 사용됩니다. Jest는 크게 세 가지 주요 특징이 있습니다:

 

 

  • 속도와 성능: Jest는 병렬 테스트 실행을 통해 빠른 테스트 수행이 가능합니다.
  • 사용의 용이성: 설정이 거의 필요 없는 간단한 구성과 사용자 친화적인 오류 메시지를 제공합니다.
  • 리치한 기능: 스냅샷 테스팅, 테스트 커버리지 등의 고급 기능을 내장하고 있습니다.

 

 

 

Jest로 dummy data 만드는 법

 

Jest로 테스트를 작성할 때, 가짜 데이터(Dummy Data)를 생성하여 테스트의 신뢰성을 높일 수 있습니다. 여기서는 간단한 예제를 통해 Jest를 사용하여 Dummy Data를 만드는 방법을 살펴보겠습니다.

 

 

Jest 테스트 파일에서 랜덤 사용자 Dummy Data 생성하기

// user.test.js
describe('User 랜덤 데이터 테스트', () => {
  // 랜덤 사용자 생성 함수
  const createRandomUser = () => {
    const id = Math.floor(Math.random() * 1000);
    const name = `User${id}`;
    const email = `user${id}@example.com`;
    return { id, name, email };
  };

  // 랜덤 사용자 리스트 생성
  const dummyUsers = Array.from({ length: 5 }, () => createRandomUser());

  // 테스트 케이스
  test('랜덤 사용자 리스트가 5명인지 확인', () => {
    expect(dummyUsers.length).toBe(5);
  });

  test('랜덤 사용자의 이메일 형식 확인', () => {
    dummyUsers.forEach(user => {
      expect(user.email).toMatch(/user\d+@example\.com/);
    });
  });
});


이 코드에서 createRandomUser 함수는 랜덤한 ID, 이름, 이메일을 가진 사용자 객체를 생성합니다. Jest 테스트 내에서 이 함수를 사용하여 랜덤 사용자 리스트 dummyUsers를 생성합니다. 이 리스트는 테스트 케이스에서 사용되며, 첫 번째 테스트에서는 리스트의 길이가 5인지 확인하고, 두 번째 테스트에서는 사용자들의 이메일 형식이 올바른지 검증합니다.

이러한 방식으로 Jest 테스트에서 랜덤 데이터를 생성하고 활용함으로써, 다양한 시나리오에서의 코드 동작을 검증할 수 있습니다. 이는 테스트의 다양성과 포괄성을 높이는 데 도움이 됩니다.

 

▼ 이전 진행한 프로젝트들 ▼

 

 

내일배움캠프 Node트랙 심화 프로젝트 역할 및 진행사항

내일배움캠프 Node트랙 심화 프로젝트 역할 및 진행사항 이번 프로젝트는 팀 프로젝트로 Node트랙 심화 프로젝트를 진행하게 되었습니다. 프로젝트를 시작하며 팀에서 맡은 역할과 현재 진행사항

lemonlog.tistory.com

 

 

내일배움캠프 팀 프로젝트 - 영화 검색 사이트 (상세 페이지 추가)

내일배움캠프 팀 프로젝트 - 영화 검색 사이트 (상세 페이지 추가) 이번 과제는 팀으로 진행되었습니다. 기존 개인 프로젝트에서 했던 영화 검색 사이트의 심화 버전으로 영화의 상세 페이지와

lemonlog.tistory.com