안녕하세요, Brad입니다. 오늘은 qna-atdd 미션을 진행하다보니 시간이 정말 금방갔네요. 브라우저를 띄우지 않고 테스트를 할 수 있다는 점에서 정말 편리했습니다. 실제로 많은 테스트를 하고 띄워보니 제가 기대했던 바대로 잘 작동이 되어서 신기하기도 했구요. 그렇지만 아직 익숙하지 않아서 시간이 좀 많이 걸렸습니다. 테스트가 익숙해지고 세련되게 구현할 수 있도록 좀 더 노력해야겠습니다! 그럼 오늘도 ATDD를 진행하면서 배웠던 내용들을 간략하게 정리해볼게요.
HttpStatus.FOUND`는 어느 상황에 서버로부터 전달이 되는 것일까요?
HttpStatus.FOUND
는 302코드로 redirect시 전달되는 상태값입니다.- 앞서 다루었는데
FOUND
가 302라는 것을 몰랐네요!!
Question
은 Id가 따로 없네요. 왜 없을까요?- 없는 줄 알았는데 사실 없는게 아니었네요.
AbstractEntity
라는 클래스를 두어서 미리 생성되어야 하는 부분(id, createdAt, updatedAt 등)이 정의되어 있었네요!
- 없는 줄 알았는데 사실 없는게 아니었네요.
데이터베이스의 영속성?
@Transactional
을 사용하면 굳이 Repository를 사용할 필요가 없습니다. 이게 영속성 덕분이라고 하는데요.
영속성이 뭘까요?
Mock Test
QnaService
를 테스트하기 위해UserRepository
와userService
도 Mock 주입을 하였습니다. 그런데 막상 사용하려고 하니userService
객체를 사용하지 않아 오류가 발생하더라구요.- 그래서 현재 제가 생각한 추측은
@InjectMocks
의 객체, 즉 여기선userService
였죠. 이 객체를 사용하지 않으면@Mock
으로 객체를 만들고when ~ thenReturn
으로 해놓은 부분도 실행되지 않는다는 것입니다. - 조금더 테스트 케이스를 만들어보면서 이러한 추측이 맞는지 확인해봐야겠네요!
ATDD와 TDD
- 요청 - 응답 → AcceptanceTest 요구됩니다.
- Service → MockTest 요구됩니다.
- Domain 객체 → TDD 요구됩니다.
- 따라서 제대로 테스트하기 위해선 이러한 3개의 테스트가 동시에 진행이 되어야 합니다.
'TIL' 카테고리의 다른 글
Today's Dev Notes(2018-12-13) (0) | 2018.12.14 |
---|---|
Today's Dev Notes(2018-12-12) (0) | 2018.12.12 |
Today's Dev Notes2(2018-12-10) (0) | 2018.12.10 |
Today's Dev Notes(2018-12-10) (0) | 2018.12.10 |
Today's Dev Notes(2018-12-09) (0) | 2018.12.09 |