-
Notifications
You must be signed in to change notification settings - Fork 0
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
[TEST] Fixture 관리 객체 생성 및 예시 작성 #135
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM~! 리팩토링 해준 이든 고마워~!!
public BalanceOption createOption(BalanceContent balanceContent) { | ||
BalanceOption balanceOption = new BalanceOption("옵션명", balanceContent); | ||
return balanceOptionRepository.save(balanceOption); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사소한 제안) 내부에서 저장한다는 것을 알 수 있도록 메서드 이름 바꾸는 건 어떨까요?
(아래는 메서드 예시이고, 적절한 네이밍 사용해주시면 좋을 것 같아요!)
public BalanceOption getSavedOption(BalanceContent balanceContent) {
BalanceOption balanceOption = new BalanceOption("옵션명", balanceContent);
return balanceOptionRepository.save(balanceOption);
}
public RoomContent(Room room, BalanceContent balanceContent, int round, LocalDateTime roundEndedAt, | ||
boolean isUsed) { | ||
this.room = room; | ||
this.balanceContent = balanceContent; | ||
this.round = round; | ||
this.roundEndedAt = roundEndedAt; | ||
this.isUsed = isUsed; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사소한 제안) 생성자에도 "메서드 파라미터 개행 방식"을 적용해보는 건 어떨까요?
https://www.notion.so/ghenmaru/BE-f347e1e9315d46fdb3f066cc55946168?pvs=4#f08ebdc75bc0401b8abe6a9fb8c8d732
public RoomContent(Room room,
BalanceContent balanceContent,
int round,
LocalDateTime roundEndedAt,
boolean isUsed) {
this.room = room;
this.balanceContent = balanceContent;
this.round = round;
this.roundEndedAt = roundEndedAt;
this.isUsed = isUsed;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixture 먼저 구현해주신 점 칭찬해용~~
fixture 내에서 repository의 save를 하는 이유가 궁금했는데 이든이 오프라인으로 잘 설명해주었습니다
Repository 테스트는 해당 repository만 autowired해서 단위테스트 성격으로 테스트하는 것이 이상적이지 않을까 생각해요 만약 repository 테스트에서 연관관계의 엔티티가 필요하면 fixture 대신 BaseRepositoryTest
에 구현된 save()
를 사용하면 어떨지 의견드립니다!
@@ -215,7 +218,7 @@ class 라운드_종료_여부 { | |||
// given | |||
int currentRound = 2; | |||
Room room = roomRepository.save( | |||
new Room(TOTAL_ROUND, currentRound, TIME_LIMIT, STATUS, CATEGORY)); | |||
roomFixture.createRoom(TOTAL_ROUND, currentRound, TIME_LIMIT, STATUS, CATEGORY)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
의견) createRoom 내에서 save()를 호출하기 때문에 save를 한 번 더 진행하는 것으로 보입니다
Issue Number
#114
As-Is
테스트 데이터를 sql로 사용하고 있기 때문에 발생하고 있는 각종 데이터 관련 문제와 불편함이 발생한다.
To-Be
게임 방 정보 조회 기능
에 대해 Fixture를 적용해두었습니다 (예시 바로가기)Check List
Test Screenshot
(Optional) Additional Description
때문에 우선 예시를 작성을 해두었으니 PR Merge되면 각자 역할 분담해서 Fixture 사용 로직으로 Refactoring 하면 될 것 같습니다!!