Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MemberJpaRepository 테스트 구현 #624

Merged
merged 8 commits into from
Sep 12, 2024
Merged

Conversation

kyum-q
Copy link
Contributor

@kyum-q kyum-q commented Sep 10, 2024

⚡️ 관련 이슈

close #620

📍주요 변경 사항

MemberJpaRepository 관련 테스트 구현

  • 메서드 이름 및 쿼리를 직접 작성한 메서드에 대해 테스트를 작성

🎸기타

문제 있었음 -> 결론 제우스가 도와줌 내 yml 파일 설정 문제 !

테스트 처음 실행 시 정상 실행 (DB에 테이블 없는 상태에서)

image

두번 째 실행부터 Flyway 에러 발생

image

문제 원인

  • V1__init.sql 실행으로 문제 발생 -> 테이블이 이미 존재해서 에러

의문점 - 왜 V1__init.sql 이 계속 실행되는가?

  • Flyway는 각 마이그레이션 파일에 고유한 버전을 부여하며, 이 버전이 flyway_schema_history 테이블에 기록된 경우 동일한 버전의 스크립트는 재실행되지 않는다.
  • flyway_schema_history 확인하면 version 1 등록되어 있음
  • image

나만 그러면 도와줄 친구 찾음. applicaton-db.yml 파일을 dev 서버와 동일하게 변경해도 안됨

해결

@zeus6768 가 도와줌

1차 결론

결론 : applicatoin-db.yml 파일을 test 패키지에 구현하지 않았음.
줄줄 이야기 해봐요 :
test 패키지에 yml 파일이 하나라도 구현했다면 사용하는 모든 yml 파일을 새롭게 구현해야 했음.
하지만 그걸 모르고 applicatoin-db.yml 파일을 test 패키지에 구현하지 않았음.
application-db.yml 파일을 test 패키지에 추가하고 나니 해결

2차 결론

1차 결론 후 또 안됨, create-drop 이 아닌 validate인 경우 안됨
초켬제 머리 합친 결과 : 몰리가 구현해준 test annotaiton이랑 충돌하나로 결론

  1. 몰리가 구현해준 어노테이션 실행 시키면 모든 테이블 드랍하는 거와 flyway 충돌
  2. 테스트에서는 creat-drop 으로 하기로 함 ~

@kyum-q kyum-q added refactor 요구사항이 바뀌지 않은 변경사항 BE 백엔드 labels Sep 10, 2024
@kyum-q kyum-q added this to the 5차 스프린트🍗 milestone Sep 10, 2024
@kyum-q kyum-q self-assigned this Sep 10, 2024
@kyum-q kyum-q changed the title Test/620 member jpa repository MemberJpaRepository 테스트 구현 Sep 10, 2024
Copy link
Contributor

@HoeSeong123 HoeSeong123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습다 켬미 👍

Comment on lines 30 to 39
@Autowired
MemberJpaRepositoryTest(MemberJpaRepository memberJpaRepository, TemplateJpaRepository templateJpaRepository,
CategoryJpaRepository categoryJpaRepository
MemberJpaRepositoryTest(
MemberJpaRepository memberRepository,
TemplateJpaRepository templateRepository,
CategoryJpaRepository categoryRepository
) {
this.memberJpaRepository = memberJpaRepository;
this.templateJpaRepository = templateJpaRepository;
this.categoryJpaRepository = categoryJpaRepository;
this.memberRepository = memberRepository;
this.templateRepository = templateRepository;
this.categoryRepository = categoryRepository;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(질문) 오 이렇게 하는건 처음보네요??
필드들을 각각 @Autowired하는 것과 어떤 차이가 있나요??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 이전 미션 때 매번 @Autowired를 사용했습니다 ~!
하지만 이번에 수정 전 코드도 생성자 주입으로 되어 있고, 레벨 2 때 어디선가 테스트에서 Setter 주입보다 생성자 주입이 더 빠르다라는 이야기를 들었던 것 같아서 그대로 사용했습니다 !

하지만 초롱에 질문에 답변하기 위해 찾아보니 그런 아티클이나 글은 없더라고요 ㅎㅎ 그래서 ChatGPT한테 물어보니 성능 상은 거의 똑같을 거라고 하네요 !

그래도 혹시 몰라 테스트를 실행해 봤습니다.
결론적으로 전혀 상관 없네요 ㅎㅎ
가독성이 좋은 @Autowired 사용으로 변경하겠습니다.

스크린샷 2024-09-11 132631
스크린샷 2024-09-11 132759

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

찾아봐줘서 감사합니다!!

}

@Nested
@DisplayName("아이디가 존재 여부")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

정말 사소한 거지만 문장이 어색한 것 같아요.
아이디 존재 여부 등으로 수정하는 건 어떤가요?

}

@Test
@DisplayName("성공 : 해당 아이디가 존재하면 false를 반환한다.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@DisplayName("성공 : 해당 아이디가 존재하면 false를 반환한다.")
@DisplayName("성공 : 해당 아이디가 존재하지 않으면 false를 반환한다.")

Copy link
Contributor

@zangsu zangsu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

켬미~
코드를 너무 잘 짜 주셨네요!
컨벤션이나 코드 자체에서는 리뷰를 달 부분이 거의 없었던 것 같아요.
그래서 코드 스타일에 대한 코멘트를 조금 남겼으니 가볍게 확인 부탁드립니다!

Copy link
Contributor

@zeus6768 zeus6768 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

켬미 고생했어요~

간단한 코멘트 남겼습니다.

팀원들이 해준 리뷰 반영되면 approve 하러 올게요!

Copy link
Contributor

@jminkkk jminkkk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 켬미
수고하셨습니다!
(아주) 사소한 리뷰 몇개 남겨보았으니 확인해주시면 좋을 것 같아요

HoeSeong123
HoeSeong123 previously approved these changes Sep 11, 2024
Copy link
Contributor

@HoeSeong123 HoeSeong123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다

jminkkk
jminkkk previously approved these changes Sep 11, 2024
zeus6768
zeus6768 previously approved these changes Sep 11, 2024
Copy link
Contributor

@zeus6768 zeus6768 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Contributor

@zangsu zangsu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

놓친 부분이 있었네요 ㅠ
아주아주 사소한 부분이니... 한번만 더 수정 부탁드려용

@kyum-q kyum-q dismissed stale reviews from zeus6768, jminkkk, and HoeSeong123 via 5668339 September 12, 2024 01:21
Copy link
Contributor

@zangsu zangsu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요구사항 변경 너~~무 고생 많으셨어요!! ⚡

@zeus6768 zeus6768 merged commit 1799fab into dev/be Sep 12, 2024
5 checks passed
@zeus6768 zeus6768 deleted the test/620-MemberJpaRepository branch September 12, 2024 05:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 refactor 요구사항이 바뀌지 않은 변경사항
Projects
Status: Weekend Done
Development

Successfully merging this pull request may close these issues.

5 participants