반응형
오랜만에 작성하는 블로그!
이유는.. 뭘 써야할 지 잘 몰랐어서 안쓰다가 오늘 간만에 쓰게 됐습니다.
최근 TDD 를 통해 회사 프로젝트를 구성하고 실행해 보고 있습니다. 그러면서 테스트 케이스를 작성하게 되는데
그 중 일부를 발췌해 작성해봅니다~
업무를 할 때마다 늘 마주치는 휴대전화번호 입력 그리고 생년월일 입력이 있습니다.
const { expect, assert } = require('chai');
describe('정규식 테스트 진행', () => {
it('휴대전화번호 정규식 테스트', () => {
/**
* 조건, 휴대전화번호만 전달되는 경우, 하이픈이 같이 들어오는 경우
* 휴대전화번호 맨 앞자리는 지금은 010으로 통합됐으나, 이전엔 아니었음.
* 010, 011, 012, 016, 017, 018, 019 가 있음. (알기로는)
* 중간자리는 3~4 자리로 고정.
* 맨 뒷 자리는 4자리로 고정.
*/
const regexpPhone = /(01[0|1|2|6|7|8|9])-?([\d]{3,4})-?([\d]{4})/;
const testPhoneNumbers = [
'010-1111-2222',
'010-111-222',
'01011112222',
'010111222',
'017-1111-2222',
'013-1111-2222',
'011-1111-2222',
'013-111-122',
'014-111-2323',
'019-111-2323',
'02-1234-1234',
];
for (const phoneNumber of testPhoneNumbers) {
expect(regexpPhone.test(phoneNumber), `${phoneNumber} test valid`).to.equal(true);
assert.equal(regexpPhone.test(phoneNumber), true, `${phoneNumber} test valid`);
}
});
})
위 내용을 토대로 실행해보면 013 이 들어간 내용, 맨 뒷자리가 3자리경우 가 테스트 케이스에 잡히게 되고, 02 또한 false 로 나올 겁니다.
이는 조건부대로 잘 실행된 것이므로 정상적인 경우입니다~
( 만일 안심번호에 대해 제가 작업을 하게 되면 또 올리겠지만 필요하시다면 메일 혹은 답글로 남겨주세요~ )
반응형
'IT > 프로그래밍' 카테고리의 다른 글
[JAVA/JPA] JPA.. 이름만 들어봤다!! 이제라도 알자.. (0) | 2021.07.28 |
---|---|
[NodeJS/Redis] 캐시를 사용한 리스트 전달하기 (0) | 2021.05.04 |
[NodeJS] Sequelize에서 JSON 안에 JSON 처리는 어떻게 해? (0) | 2021.04.15 |
좌충우돌 Sequelize 5.x 에서 Sequelize 6.x 로 마이그레이션 (0) | 2021.03.31 |
Java JVM 그리고 GC (0) | 2021.03.29 |