[워밍업 클럽 4기 - BE 클린 코드 & 테스트 코드] Day 18 미션

[워밍업 클럽 4기 - BE 클린 코드 & 테스트 코드] Day 18 미션

🎯 Day 18 미션

 

1⃣번 미션


  • @Mock

    • 단위 테스트에서 사용할 가짜 객체를 직접 생성한다.

  • @MockBean

     

    • mock 객체를 생성하고, 스프링 컨텍스트에 직접 등록한다.

  • @Spy

    • 실제 객체를 기반으로, 일부를 stub 할 수 있다.

  • @SpyBean

    • spy 객체를 생성하고, 스프링 컨텍스트에 직접 등록한다.

  • @InjectMocks

     

    • 테스트 클래스에 mock이나 spy 객체들을 의존성 주입해준다.

 

 

2⃣번 미션


  • 댓글 작성과 수정에 대해 테스트할 때, 사용자와 게시물은 무조건 필요하므로 @BeforEach에 넣어주었습니다.

@BeforeEach 
void setUp() {
    1-1. 2-1. 3-1. 사용자1 생성에 필요한 내용 준비
    1-2. 2-2. 3-2. 사용자1 생성
    1-3. 2-3. 3-5. 사용자1의 게시물 생성에 필요한 내용 준비
    1-4. 2-4. 3-6. 사용자1의 게시물 생성
} 

@DisplayName(""사용자가 댓글을 작성할 수 있다."")
@Test
void writeComment() {
    // given
    1-5. 댓글 생성에 필요한 내용 준비

    // when
    1-6. 댓글 생성

    // then
    검증
}

@DisplayName(""사용자가 댓글을 수정할 수 있다."")
@Test
void updateComment() {
    // given
    2-5. 댓글 생성에 필요한 내용 준비
    2-6. 댓글 생성

    // when
    2-7. 댓글 수정

    // then
    검증
}

@DisplayName(""자신이 작성한 댓글이 아니면 수정할 수 없다."")
@Test
void cannotUpdateCommentWhenUserIsNotWriter() {
    // given
    3-3. 사용자2 생성에 필요한 내용 준비
    3-4. 사용자2 생성

    3-7. 사용자1의 댓글 생성에 필요한 내용 준비
    3-8. 사용자1의 댓글 생성

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

    // then
    검증        
}

 

 

👨🏻‍💻 강의 출처

 

댓글을 작성해보세요.

채널톡 아이콘