노드심화 5-2

·2022년 12월 28일
0

study

목록 보기
42/81
post-thumbnail

prac_jest파일

Jest로 간단한 단위 테스트 코드 작성해보기 (1)

1. 단위 테스트 코드 파일 생성

validation.spec.js파일 생성
=> 단위 테스트 코드 파일은 테스트할 파일 이름.spec.js로 생성해줌!!

2. 단위 테스트 코드 작성

  • test(): 단위 테스트를 묶어주는 함수입니다.
  • expect(): 특정 값이 만족되는지(정상적인지) 확인하기 위한 표현식을 작성할수 있게 해주는 함수입니다.
// validation.spec.js
//예시
const { isEmail } = require('./validation');

test('테스트가 성공하는 상황', () => {
    expect(isEmail('이메일이 아니에요')).toEqual(false);
});

test('테스트가 실패하는 상황', () => {
    expect(isEmail('my-email@domain.com')).toEqual(true);
});

3. 단위 테스트 코드 요구사항

  • 입력한 이메일 주소에는 "@" 문자가 1개만 있어야 이메일 형식이다.
  • 입력한 이메일 주소에 공백(스페이스)이 존재하면 이메일 형식이 아니다.
  • 입력한 이메일 주소 맨 앞에 하이픈(-)이 있으면 이메일 형식이 아니다.
// validation.spec.js

const { isEmail } = require("./validation");

test('입력한 이메일 주소에는 "@" 문자가 1개만 있어야 이메일 형식이다.', () => {
  expect(isEmail("my-email@domain.com")).toEqual(true); // 1개만 있는 상황
  expect(isEmail("my-email@@@@domain.com")).toEqual(false); // 여러개 있는 상황
  expect(isEmail("my-emaildomain.com")).toEqual(false); // 하나도 없는 상황
});

test("입력한 이메일 주소에 공백(스페이스)이 존재하면 이메일 형식이 아니다.", () => {
  expect(isEmail("myemail@domain.com")).toEqual(true);
  expect(isEmail("my email@domain.com")).toEqual(false);
});

test("입력한 이메일 주소 맨 앞에 하이픈(-)이 있으면 이메일 형식이 아니다.", () => {
  expect(isEmail("e-m-a-i-l@domain.com")).toEqual(true);
  expect(isEmail("-email@domain.com")).toEqual(false);
});

4. 테스트 코드가 통과하도록 isEmail 함수 코드 디버깅

자신의 코드에 문제(Bug)가 있는것을 찾아서 증명하고, 문제(Bug)를 고치는 행위를 디버깅(Debugging)이라고 한다.

// validation.js

module.exports = {
    isEmail: (value) => {
        const email = (value || '');

        if (email.split('@').length !== 2) {
            return false;
        } else if (email.includes(' ')) {
            return false;
        } else if (email[0] === '-') {
            return false;
        }

        return true;
    },
};
profile
개발자 꿈나무

0개의 댓글