인프런 커뮤니티 질문&답변

이호겸님의 프로필 이미지
이호겸

작성한 질문수

따라하며 배우는 TDD 개발 [2023.11 업데이트]

통합 테스트에 관한 질문 이 있습니다.

작성

·

169

0

안녕하세요 강사님 강의를 따라하며 통합테스트에 다음과 같은 코드에서 의문점이 생겼습니다.

통합테스트에서 데이터를 update나 delete를 할때 실제 db에 있는 데이터가 수정,삭제가 되는것을 확인했습니다. 

지금은 TDD개발이라 테스트중에 사용되는 데이터라 상관이 없겠지만 

만약에 실제 서비스중이거나 중요한 데이터를 다루는 api에 대한 통합 테스트를 할때에는 서비스 db의 의존성없이 가짜 데이터로 테스트를 해야하는데 통합테스트를 할때 그렇게 하는 방법은 없나요??

 

it('PUT /api/products', async () => {
const res = await request(app)
.put('/api/products/' + firstProduct._id)
.send({ name: 'updated name', description: 'updqted discription' });
expect(res.statusCode).toBe(200);
expect(res.body.name).toBe('updated name');
expect(res.body.description).toBe('updqted discription');
});

답변 1

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 이호겸님 ! 
실무에서는 데이터베이스도 개발용 데이터베이스를 따로 만들어서 쓰기 때문에 
통합테스트를 할 때 개발용 데이터베이스에서 데이터를 지우고 수정하셔도 될 것 같습니다 ~~! 
감사합니다 ! 

이호겸님의 프로필 이미지
이호겸
질문자

좋은 답변 감사합니다!

이호겸님의 프로필 이미지
이호겸

작성한 질문수

질문하기