jest_테스트 전/후 처리

악음·2021년 12월 1일
0

jest

목록 보기
4/5
post-thumbnail

테스트 전/후 처리란

만약 한가지 배열을 crud하는 테스트가 있다고 해보면
각각의 테스트 안에서 배열을 초기화/똑같은 데이터를 주입해야할 것이다.
이러한 불필요한 코드를 줄여주는것이 테스트 전/후 처리이다.

예제

폴더트리

-functions.ts
-Data.ts
-data.test.ts
functions.ts

import Data from "./Data";

export const findAll = () => {
  return Data.user;
};
export const create = (user: string) => {
  Data.user.push(user);
};
export const destroy = (user: string) => {
  Data.user.splice(Data.user.indexOf(user), 1);
};
export const modify = (targetUser: string, modifyUserName: string) => {
  const findIndex = Data.user.findIndex((item) => item === targetUser);
  Data.user[findIndex] = modifyUserName;
};

Data.ts

const Data: { user: string[] } = {
  user: [],
};
export default Data;

이제 위에있는 코드로 테스트를 진행한다고 해보자
매번 test안에 Data.user.push를 해야하는 코드를 작성한뒤에 테스트를 진행해야 될 것이다
이런점을 번거롭지 않도록 test가 실행/실행후 때 특정 코드를 실행시켜주는 기능늘 테스트 전/후 처리라고 한다.

각각의 테스트가 진행 될때마다 실행될 코드를 설정해보자

// 매 테스트가 시작할때마다 실행될 코드
beforeEach(() => {
  Data.user.push("user1", "user2", "user3", "user4");
});
// 매 테스트가 끝날때마다 실행될 코드
afterEach(() => {
  Data.user.length = 0;
});

each가 들어간 만큼 test가 실행/실행후 타이밍에 안에있는 코드를 실행시킨다.

모든 테스트전/ 모든테스트가 끝난후 실행될 코드

만약 백엔드에서 DB커넥션을 연결하여 테스트 해야할 경우 다음을 쓴다

// 모든 테스트 시작전
beforeAll(()=>{
// db연결
})
// 모든 테스트가 끝난후
afterAll(()=>{
// db끊기
})

특정 테스트만 실행, 특정테스트만 빼고 실행

// 특정 테스트만 빼고 실행하고싶다면 
test.skip() 
// 특정 테스트만 실행하고 싶다면 
test.only()

테스트를 묶고싶다?

// 몇몇 테스트만 묶고싶다면 
describe("",()=>{
    test()
    test()
 })
profile
RN/react.js개발자이며 배운것들을 제가 보기위해서 정리하기 때문에 비속어 오타가 있을수있습니다.

0개의 댓글