supertest 2

Jest - 테스트 코드간 충돌, 간섭 막는 방법 (매번 테스트 결과가 다를 때 해결 방법!)

테스트 코드 충돌 (간섭) 사내에서 jest + supertest를 이용해서 테스트 코드를 작성하고 있었습니다. 그런데, 자꾸 테스트를 돌릴 때마다 한 번씩 테스트가 깨지는 현상이 발생했습니다. 알고보니 테스트 코드 파일 A가 다른 테스트 코드 파일 B랑 비동기로 실행되다 보니까 서로 간섭하는 현상이 생기는 것이었습니다. 상황 충돌을 일으킨 테스트 2가지는 아래와 같습니다. 카테고리 MVC 테스트 상품 MVC 테스트 프로젝트 구조가 상품 등록 API를 테스트할 때는 먼저 카테고리를 생성한 후에 상품 등록 API에 요청을 보내는 구조였습니다. 상품 등록 API는 등록할 카테고리의 id를 받아서, 해당 카테고리가 없으면 예외가 발생하기 때문에 그렇게 설계했습니다. 카테고리 MVC 테스트는 각 테스트가 실행될..

Server/Node.js 2022.02.28

NodeJS - API에서 Delete 테스트 하는 방법 ! (Jest)

Delete 테스트 케이스 작성하는 법 Delete를 테스트 하기 위해서는 Insert -> 해당 레코드를 Delete 하는 식으로 진행해야 합니다. 문제는 이 때 비동기로 인해서 Delete 테스트가 먼저 실행되서 404_Not_found가 나오는 문제가 발생합니다. 따라서 이 때는 async, await를 이용해서 동기화 즉, 순서를 지정해줘야 합니다. generate async function generateResource() { const resource = { name: "카테고리 이름", description: "설명", }; const result = await Resource.create(resource); return result.id; } 먼저 엔터티한 후, 레코드의 id를 return..

Server/Node.js 2021.12.19