![[워밍업 클럽 4기 - BE 클린 코드 & 테스트 코드] Day 18 미션](https://cdn.inflearn.com/public/files/blogs/6f6e1e37-0934-4a27-b403-e1b51294f364/인프런 워밍업 클럽 4기썸네일_직사각형.png)
[워밍업 클럽 4기 - BE 클린 코드 & 테스트 코드] Day 18 미션
3개월 전
🎯 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
검증
}
👨🏻💻 강의 출처
댓글을 작성해보세요.