본문 바로가기

JavaScript

회원가입 데이터 정규식 unit Test

728x90

회원가입 데이터 정규식 unit Test


input값 정규식 jest Test

 

📄 unit/signup_validation.js

module.exports = {
    isEmail: (value) => {
        if(!/^[a-z0-9]+@[a-z]+\.[a-z]{2,3}$/.test(value)){
            return false;
        }
        return true;
    },

    isPhoneNumber: (value) => {
        if(!/^[0-9]{3}-[0-9]{3,4}-[0-9]{4}$/.test(value)){
            return false;
        }
        return true;
    },

    isPassword: (value) => {
        if(!/^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{4,10}$/.test(value)){
            return false;
        }
        return true;
    }
};

 

📄 unit/signup_validation.spec.js

const { isEmail, isPhoneNumber, isPassword } = require("./signup_validation");

test('이메일 형식', () => {
    // test code
    expect(isEmail("nodenbc4@sparta.com")).toEqual(true);
    expect(isEmail("nodenbc4@sparta78.com")).toEqual(false);
    expect(isEmail("nodenbc4@spartacom")).toEqual(false);
    expect(isEmail("nbc4@sparta@com")).toEqual(false);
});

test('번호 형식', () => {
    expect(isPhoneNumber("010-4444-1545")).toEqual(true);
    expect(isPhoneNumber("031-613-1301")).toEqual(true);
    expect(isPhoneNumber("01054916813")).toEqual(false);
    expect(isPhoneNumber("010-948-61")).toEqual(false);
});

test('비밀번호 4~10 숫자, 영어 조합', () => {
    expect(isPassword("1234")).toEqual(false);
    expect(isPassword("abcd")).toEqual(false);
    expect(isPassword("12ab")).toEqual(true);
    expect(isPassword("12dg#")).toEqual(false);
    expect(isPassword("cdg12546serehere")).toEqual(false);
});

 

📌 테스트 실행(Terminal)

npm run test signup_validation.spec.js

 

npm run test:unit하면 unit폴더안에 있는 모든 테스트가 실행되므로

딱 내가 테스트하고 싶은 테스트를 명시해줘서 테스트 해줬다!

unit test 결과