inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[워밍업 클럽 4기 - 백엔드] Day 18 미션

sein
2

미션

  1. @Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 정리

 

  1. 테스트 코드 리팩토링

@BeforeEach 
void setUp() {
    1-1. 댓글 레포지토리.deleteAllInBatch();
    1-2. 게시글 레포지토리.deleteAllInBatch();
    1-3. 사용자 레포지토리.delteAllInBatch();
} 

@DisplayName("사용자가 댓글을 작성할 수 있다.")
@Test
void writeComment() {
    // given
    1-1. 사용자 생성 - createUser() 호출
    1-2. 게시물 생성 - createPost() 호출
  
    // when
    1-3. 댓글 생성 - createReply() 호출

    // then
    검증
}

@DisplayName("사용자가 댓글을 수정할 수 있다.")
@Test
void updateComment() {
    // given
    2-1. 사용자 생성 - createUser() 호출
    2-2. 게시물 생성 - createPost() 호출
    2-3. 댓글 생성 - createReply() 호출
		
    // when
    2-4. 댓글 수정

    // then
    검증
}

@DisplayName("자신이 작성한 댓글이 아니면 수정할 수 없다.")
@Test
void cannotUpdateCommentWhenUserIsNotWriter() {
    // given
    3-1. 사용자1 생성 - createUser() 호출
    3-2. 게시물1 생성 - createPost() 호출
    3-3. 댓글1 생성 - createReply() 호출
		
    3-4. 사용자2 생성 - createUser() 호출

    // when
    3-5. 사용자2가 사용자1의 댓글 수정 시도

    // then
    검증        
}

private User createUser() {
    1-1. 사용자 생성에 필요한 내용 준비
    1-2. 사용자 생성
}

private Post createPost() {
    1-1. 게시물 생성에 필요한 내용 준비
    1-2. 게시물 생성
}

private Reply createReply() {
    1-1. 댓글 생성에 필요한 내용 준비
    1-2. 댓글 생성
}

 

한마디

강의에서 배웠던 내용을 잘 적용해볼 수 있었던 미션같아서 한 번 더 정리하는 느낌이라 좋았다. 마지막 미션까지 달릴 수 있어서 뿌듯함 100배

 

출처

백엔드 워밍업클럽 박우빈 백엔드 테스트코드

답변 0