JEST 란?
- Jest란 코드가 제대로 동작하는지 확인하는 Test Case 를 만드는 페이스북이 개발한 'JS 테스팅 프레임워크'이다. 
 
추가적인 정보에 대해서 조사하고 수정하자 !!  
How To Use Jest ?
 참고자료 https://www.daleseo.com/jest-basic/ 
- 프로젝트 생성
 
- 프로젝트 디렉터리를 생성하고 NPM 초기화 커맨드로 package.jso 파일을 생성한다. 
 
 
$ mkdir my-jest
$ npm init -y
$ ls
package.json
- Jest 라이브러리 설치
 
- Jest 라이브러를 개발 의존성으로 설치한다.
 
- 개발 의존성으로 설치하는 것은 package.json 안에 dependencies가 아닌 devDependencies에 저장된다. devDependencies는 개발 시 사용하는 패키지를 설치하는 곳으로 배포시에는 포함되지 않는다.
 
 
$ npm i -D jest
- test Script 수정
 
- package.json 파일에서 test Script를 jest로 수정해준다. 
 
 
"scripts": {
  "test": "jest"
},
- 이렇게 수정해줌으로써 터미널에 npm test 입력시 jest 커맨드를 실행할 수 있다. 
 
단일 파일 test 하기
- npm test로 jest를 실행하게 되면 .test.js 로 끝나는 모든 파일을 테스트한다.
 
- 단일 파일만 테스트 하기 위해서는 jest-cli 를 추가로 설치해야 한다. 
 
 
npm i -g jest-cli
- 위의 jest-cli를 설치한 이후 아래와 같이 단일 파일에 대한 Jest Test를 진행할 수 있다.
 
jest 파일명.test.js
테스트 기초 방법
- Jest를 이용해 Test하는 기초적인 방법에 대해서 작성해보려고 한다. 
 
- 자세한 테스트 방법들은 기초로 연습하며 익숙해 진 후 추가로 작성하고자 한다. 
 
let temp;
describe("simple test", () => {
  beforeEach(() => {
    temp = 1;
  });
  
  afterEach(() => {
    temp = 0;
  });
  
  test('1 is 1', () => {
    expect(1).toBe(1);
  });
  
  test('[1,2,3] is [1,2,3]', () => {
    expect([1,2,3]).toEqual(1);
  });
})
- 
describe
- Test 단위를 묶는 가장 큰 단위로 테스트시 describe 에 설명된 내용으로 테스트 단위를 크게 분류한다. 
 
 
- 
test, it
- test(), it()을 통해 기본 테스트를 진행한다. 두 방법의 기능적 차이는 없다 !
 
 
- 
expect
- expect() 안에 테스트 할 변수나 값을 넣어준다. 이후 toBe나 toEqual을 이용해 예측값과 비교한다.
 
 
- 
toBe, toEqual
- 결과 예측으로 가장 많이 쓰이는 문법으로 toBe는 단순비교, toEqual은 배열이나 객체 내부 깊은 비교를 수행한다.
 
 
- 
beforeEach, afterEach
- beforeEach는 test()가 실행횔 때마다 실행해주는 전처리기이다. test를 진행하기 전 최초 1회 실행된다. 
 
- afterEach는 test()가 실행횔 때마다 실행해주는 후처리기이다. test를 모두 끝내고 마지막에 1회 실행된다.
 
 
let temp;
describe("simple test", () => {
  beforeEach(() => {
    temp = 1;
  });
  
  afterEach(() => {
    temp = 0;
  });
  
  test('tmep is 1', () => {
    expect(temp).toBe(1); 
  });
  
  test('temp is 1', () => {
    expect(temp).toBe(1); 
  });
});