prac_jest파일
validation.spec.js파일 생성
=> 단위 테스트 코드 파일은테스트할 파일 이름.spec.js
로 생성해줌!!
// validation.spec.js
//예시
const { isEmail } = require('./validation');
test('테스트가 성공하는 상황', () => {
expect(isEmail('이메일이 아니에요')).toEqual(false);
});
test('테스트가 실패하는 상황', () => {
expect(isEmail('my-email@domain.com')).toEqual(true);
});
- 입력한 이메일 주소에는 "@" 문자가 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);
});
자신의 코드에 문제(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;
},
};