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

연못지님의 프로필 이미지
연못지

작성한 질문수

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

테스트 데이터 셋업

해결된 질문

작성

·

575

0

안녕하세요 강의 잘 보고 있습니다.
다름이 아니라 이렇게 H2등을 쓰지않고 테스트 할 경우, 많은 테스트 데이터들을 셋업하는 것이 힘들것 같은데 보통 어떻게 처리하시나요?

h2등을 사용한다고 하면 강의에서 알려주신 것 처럼 보통 .sql을 실행시켜서 사용할텐데,

이렇게 소형테스트들에 테스트데이터를 java code로 반복문 돌면서 생성하자니 좀 번거러운 것 같은데 혹시 다른 방법이 있을런지 혹은 어떻게 하시는지 궁금하여 여쭤봅니다.

환절기가 다가오는데 더위 조심, 감기 조심 하시길 바랍니다.

감사합니다.

답변 2

2

김우근님의 프로필 이미지
김우근
지식공유자

안녕하세요. 근래에 책을 집필할 기회가 생겨 그쪽에 힘을 실어주다 보니 다른 일에 신경 쓰지 못했습니다. 답변이 늦어 죄송합니다. 다만 해당 강의는 공식적으로 질의응답을 제공하지 않는 강의였다는 점을 이유로 늦어진 부분에 대해 양해 부탁드립니다.

어떤 상황을 겪고 계신지 대충 짐작은 가기에, 저도 질문자님이 겪는 상황에 뾰족한 수를 이야기하고 싶습니다. 하지만 애석하게도 아직 저도 질문해 주신 상황에 마땅한 해결 방법을 찾진 못했습니다.😭 테스트용 객체를 만드는 과정은 저도 매번 귀찮고 번거롭습니다. 그래서 제가 그나마 제시할 수 있는 방법은 테스트용 공용 객체를 미리 준비하는 정도입니다.

다만, 제가 덧붙여 이야기하고 싶은 것은 데이터 셋업 과정을 객체가 아닌 sql을 이용한다해서 더 쉬워지는 것은 아니라는 것입니다. 마찬가지로 sql을 이용해 데이터 셋업을 해도 매번 귀찮고 번거롭습니다. 오히려 개인적으론 객체로 테스트 데이터를 만드는 것이 sql로 만드는 것보다 더 편하다 느낍니다. sql에서 레코드를 넣기 위해선 테이블 제약이 있다 보니 테스트와 관련 없는 불필요한 데이터도 같이 넣어줘야 하는데 객체 만들 때는 생략이 가능하기도 하니까요.

더불어 이 강의에서는 소형 테스트를 강조하기 위해 중형 테스트나 대형 테스트를 그렇게 막 강조하진 않는데요. 혹시 이미 준비된 sql 데이터 셋이 있고, 그것을 활용할 수 있다면 테스트를 중형 테스트로 구성해도 괜찮습니다. 실제로 CBT나 개발 단계에서 수집한 데이터를 이용해 sql 파일을 만들고 이를 테스트에 활용하기도 하거든요.

질문을 뒤늦게 보는 바람에 환절기가 지나 답을 합니다. 조심하라 이야기해 주신 덕분에 작년 여름은 감기 걸리지 않은 것 같습니다. 시간이 너무 지났지만, 마찬가지로 겨울 감기 조심하시고, 건강 챙기길 바랍니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요. 테스트 데이터를 설정하는 방법은 여러 가지가 있을 수 있습니다. 먼저, 소형 테스트 데이터를 생성하기 위해서는 테스트 데이터를 자바 코드를 사용하여 반복문으로 생성하는 방법을 말씀하셨는데, 이 방법도 일반적으로 사용되는 방법 중 하나입니다.

그 외에도 여러 가지 방법이 있습니다.
- CSV나 Excel 파일을 사용하여 테스트 데이터를 생성하고 읽어올 수 있습니다. 이러한 파일은 테스트 시에 자주 사용되며, 데이터를 간편하게 관리할 수 있습니다.
- 테스트 데이터를 DB에 미리 삽입하여 사용하는 방법도 있습니다. 이렇게 하면 매번 테스트 데이터를 생성할 필요가 없고, 테스트 데이터의 수정이 용이합니다. 또한, 테스트 데이터를 초기화할 필요가 없이 테스트를 반복해서 실행할 수 있습니다.
- 테스트 데이터 작성을 위한 라이브러리를 사용할 수도 있습니다. 예를 들면, Faker 라이브러리는 다양한 종류의 가짜 데이터를 생성하기 위해 사용됩니다.

어떤 방법을 선택하든 각각의 상황에 가장 적합한 방법을 사용하면 됩니다. 번거롭거나 복잡하게 느껴질 수도 있겠지만, 효율적인 테스트 데이터 설정을 위해 조금의 노력이 필요합니다. 환절기에 있어 건강 유의하시고, 좋은 개발 경험 되시길 바랍니다. 감사합니다!

연못지님의 프로필 이미지
연못지

작성한 질문수

질문하기