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

온보딩을 위한 백엔드 테스트 개선 티켓을 만든다. #1205

Closed
gracefulBrown opened this issue Mar 13, 2023 · 3 comments
Closed
Assignees
Milestone

Comments

@gracefulBrown
Copy link
Contributor

No description provided.

@gracefulBrown gracefulBrown added this to the 2023 레벨1 milestone Mar 13, 2023
@gracefulBrown
Copy link
Contributor Author

gracefulBrown commented Mar 24, 2023

할 일

  • 대략적인 흐름 (초안) 만들어 놓고
  • 멤버 수가 확정되면 구체적으로 계획을 세워서 이슈를 만들기

논의 내용

테스트 종류

  • 인수 테스트
  • 문서화 테스트
  • 통합 테스트
  • 단위 테스트

작업 예시

  • 인수 테스트 성공하는 하나의 인수 테스트만 남기고 나머지는 중복 제거하게 하기
  • 통합 테스트 성공하는 하나의 통합 테스트만 남기고 나머지는 중복 제거하게 하기
  • 단위 테스트 중에 스프링에 의존하지 않는 대상 테스트 보완
    • 있으면 제거하고 의존하지 않게 수정하기
    • 테스트 더블은 써도 되고 안써도 됨
  • 단위 테스트 > 도메인 계층 컨벤션 만들어서

통합 테스트

  • Repository를 바라보는 통합테스트를 제외하고 모두 제거하기

액션 플랜

  • 온보딩용 테스트 가이드 만들기 @seokhongkim
  • 근로 인원 픽스 후 인원에 맞춰 이슈 할당하기

@seokhongkim seokhongkim self-assigned this Apr 3, 2023
@seokhongkim
Copy link
Contributor

seokhongkim commented Apr 3, 2023

백엔드 온보딩 제안

1주차 (4/11)

  • flyway 리서치 (1개 페어)
    • flyway 가 무엇이고 왜 필요한지?
    • flyway script 작성 방법
    • gradle에서 flyway task를 사용하는 방법
      • 주로 사용하는 명령어, 역할
  • mockito (spring 기반 아님) + junit 을 이용한 테스트 작성 방법 정리 (1개 페어)
    • @ExtendWith(MockitoExtension.class), @InjectMocks, @Mock, 이외에 mockito 에서 제공하는 테스트 작성을 위한 메서드
  • 서비스 개선하고 싶은 부분 정리 (나머지 페어)

2주차 (4/17)

  • 아래 도메인 중 간단한 도메인을 정해서 테스트 작성
    • 총 10개 이상의 테스트를 작성하되, 아래 요건을 준수
      • 최소 1개의 서비스 클래스에 대해 4개 이상의 분기에 대한 테스트 작성 (mockito + junit 을 이용한 테스트 작성 연습)
      • 최소 1개의 도메인 클래스에 대해 4개 이상의 분기에 대한 테스트 작성

백엔드 테스트 작성 대상

  • 괄호 안의 숫자는 브랜치 커버리지

  • badge

    • application
      • ComplimentKingBadgeCreator (0/2)
      • PassionKingBadgeCreator (0/2)
    • domain
      • FourthCrewSessions (3/6)
  • member

    • application
      • MemberService (0/4)
    • domain
      • Member (7/16)
      • MemberGroup (0/6)
      • MemberTag (0/16) -> equals() 구현을 제외하면 5개 정도의 분기가 있는 것으로 예상
  • roadmap

    • application
      • EssayAnswerService (0/2)
      • KeywordService (0/6)
      • NewSessionService (0/2) -> SessionService 에 합치는 것을 고려해야 함.
      • QuizService (0/2)
    • domain
      • EssayAnswer (0/4)
      • Keyword (1/12) -> equals() 구현을 제외하면 7개 정도의 분기가 있는 것으로 예상
  • session

    • application
      • MissionService (0/6)
      • SessionMemberService (0/4)
      • SessionService (0/6)
    • domain
      • Mission (1/16) -> equals() 구현을 제외하면 2개의 분기가 있는 것으로 예상
      • Session (1/16) -> equals() 구현을 제외하면 2개의 분기가 있는 것으로 예상
  • studylog

    • application
      • CommentService (0/4)
      • PopularStudylogService (0/14)
      • StudylogLikeService (0/2)
      • StudylogScrapService (0/2)
      • StudylogService (0/30)
      • TagService (0/2)
    • domain
      • Studylog (1/8)
  • levellogs -> 삭제 대상

    • application
      • LevelLogService (0/8)
    • domain
      • LevelLog (0/40) -> @EqualsAndHashcode 영향으로 보이며, 실제 분기는 6개로 예상

@seokhongkim
Copy link
Contributor

#1232 로 백엔드 테스트 작성 티켓 생성했습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants