"type": "module",
"scripts": {
"test": "node --experimental-vm-modules node_modules/.bin/jest"
},
3) 테스트 할 간단한 함수 만들어보기
프로젝트 폴더 안에, validation.js 라는 이름으로 파일을 하나 생성 후
아래의 코드를 validation.js 파일에 붙여넣고 저장
// validation.js
export const isEmail = (value) => {
// value가 이메일 형식에 맞으면 true, 형식에 맞지 않으면 false를 return 하도록 구현했음
return false;
};
테스트 코드를 작성할 파일을 생성 일반적인 관례로 '테스트할파일이름.spec.js' 와 같은 형식으로 파일을 만듬. 아래의 코드는 테스트코드 예시
요구사항 1개마다 test 함수를 1개씩 만들고, 그 안에 테스트 코드를 작성
요구 사항 예시
- 입력한 이메일 주소에는 "@" 문자가 1개만 있어야 이메일 형식이다.
- 입력한 이메일 주소에 공백(스페이스)이 존재하면 이메일 형식이 아니다.
- 입력한 이메일 주소 맨 앞에 하이픈(-)이 있으면 이메일 형식이 아니다.
// validation.spec.js
import { isEmail } from './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);
});
failed가 있도록. 즉, 실패하는 테스트가 최소 하나라도 있도록 작성해주기!
-> 만약 항상 모든 코드가 성공한다면 지금 작성한 테스트 코드에 빈틈이 많으며, 자신의 코드의 결함을 찾지 못하는 테스트 코드를 작성한것
4) 실패하는 테스트가 있었다면 이제 테스트가 통과할 수 있도록 isEmail 함수 디버깅 한 후 테스트 코드를 한번 더 실행하여 모두 통과하는지 확인