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

Register 테스트 작성 #7

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Register 테스트 작성 #7

wants to merge 6 commits into from

Conversation

vectorch9
Copy link
Member

@vectorch9 vectorch9 commented Jun 21, 2023

📌Linked Issues

✏Change Details

테스트용 gradle 의존성 수정

  • 테스트 대상 모듈에 spring-boot-starter-test 의존성 추가
  • DB와의 연결이 필요한 모듈(adapter)에 h2 관련 테스트 의존성 추가
  • 추가로 adapter 모듈에서 data의 클래스를 주입받을 때 정상 실행은 되지만 인텔리제이에서 밑줄이 표시되는 이슈가 있었습니다. adapter모듈에서 data에 대한 의존을 implementation에서 api로 수정하니 해결됐습니다!

Register 테스트 작성

  • Adapter의 경우 내부에 여러 메서드를 포함하고 있으므로 @Nested 클래스를 활용하였습니다.(이전 프로젝트의 컨벤션과 같음)
    • Controller와 Service의 경우 하나의 public 메서드만 가지므로 @Nested는 사용하지 않았습니다.
  • DB에 테스트를 위한 초기 정보가 필요한 경우(adapter, data) @Sql을 활용하였습니다.
    • @BeforeEach와 같은 메서드를 활용할 수도 있으나 코드가 길어지며 중복 코드가 너무 많아진다고 판단하였습니다.
    • 중복코드는 예를들면 기본 Member 생성과 같은 작업을 의미합니다. 대부분의 로직이 유저 간의 상호작용을 가지므로, 매 테스트 시 마다 Member를 생성하여야 하고 이는 중복코드가 너무 많아진다고 생각했습니다.
  • 코드 간의 상호작용이 있거나 예외 처리를 가지는 adapter, api, application 모듈만 테스트를 작성하였습니다.
    • domain 모듈의 경우 현재 테스트할만한 로직이 없어서, 추후에 복잡한 로직이 추가될 경우 테스트를 작성하겠습니다.
    • data모듈도 현재 단순한 JpaRepository만을 가지므로 작성하지 않았습니다. 추후에 querydsl, JPQL 사용 시에 테스트를 작성할 것 같습니다.

💬Comment

📑References

✅Check List

  • 추가한 기능에 대한 테스트는 모두 완료하셨나요?
  • 코드 정렬(Ctrl + Alt + L), 불필요한 코드나 오타는 없는지 확인하셨나요?

@vectorch9 vectorch9 added the enhancement New feature or request label Jun 21, 2023
@vectorch9 vectorch9 requested a review from seonpilKim June 21, 2023 06:53
@vectorch9 vectorch9 self-assigned this Jun 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant