[ 3주차 회고록 📚]
📌 커리큘럼
📌 코드리뷰 with 깃허브
github.com/CodeSoom/spring-week3-assignment-1/pull/8
1. 한 것
- 코드숨 스프링 2회 과제풀이 강의 보기
- 코드숨 스프링 3회 강의 2개 듣기
1) JUnit5을 활용한 유닛 테스트 방법
2) MockMvc를 활용한 Spring MVC 테스트 방법
- 작성된 코드가 올바르게 동작하는지 확인하는
1) 유닛 테스트 작성 과제 진행
2) Spring MockMVC 테스트 작성 과제 진행
- 코드 리뷰 확인 후 리팩토링 진행
- given-when-then 패턴에 관한 자료 찾아보기
- Junit5의 @Nested를 활용한 계층 구조 테스트 방법 찾아보기
- Describe - Context - IT 구조에 관한 자료 찾아보기
2. 배운 것
- @Test는 '다른 사람이 이 테스트를 통해 내 코드의 사용법을 배운다'는 의도를
분명히 드러낼 수 있게 만들자.
- 테스트 대상이 테스트 준비조건에 들어가지 않게 하자.
- 테스트 대상이 @BeforeEach에 있지 않게 하자.
'~가 있으면' 이라는 테스트를 만들었다면,
'~가 없다면' 이라는 테스트도 만들어주자.
context는 어떤 다른 주어진 상황이 다를 때 테스트의 의도를 드러내기가 좋다.
context가 단일 조건인 경우에는 context 를 쓰지 않아도 괜찮다.
[ MockMvc ]
MockMVC란 웹 애플리케이션을 서버에 배포하지 않고도
스프링 MVC의 동작을 재현할 수 있는 클래스이다.
📍MockMVC 는 perform 이라는 메소드를 지원한다.
perform() 메소드는
- DispatcherServlet에 요청을 의뢰하는 역할을 한다.
- MockMvcRequestBuilder클래스를 사용해 설정한 요청 데이터를 perform()의 인수로 전달한다.
- get, post, put, delete, fileUpload 와 같은 메서드를 제공한다.
- ResultActions 이라는 인터페이스를 반환한다.
📍ResultActions 인터페이스는 아래 3가지 메소드를 지원한다.
- andDo()
- andExpect()
- andReturn()
그 중 주로 사용했던 .andExpect() 의 예시는 아래와 같다.
3. 느낀 것
'테스트 코드러'가 되기 위한 걸음마를 시작했다.
낯설지만 조금씩 익숙해져 가는 중이다.
테스트 코드 작성은 안정성을 위해서 반드시 필요한 작업이라는 생각이 들었지만
알맞은 테스트를 하기 작성하기 위해서,
그리고 다른 개발자에게 정말 도움이 되는 코드를 작성하기 위해서는
공부해야 할 것이 많아 보인다.
이번 한 주간은 과제에 해당하는 테스트 코드를 구현하기에 바빴다.
좀 더 예제를 찾아보고
받은 피드백 복습을 잘 해서 조금씩 더 나은 테스트 코드를 작성하고 싶다.
첫 술에 배부를 수 없는 것이니.
4. 자기 선언
연휴 관계로 한 주간 강의는 올라오지 않을 예정이다.
복습하지 않으면 쉽게 사라지니, 1~3주차 복습을 해보자.
하지만 연휴 기간에는 조금 늘어지기도 하면서 공부할 것이다!
'회고록 모음 > 코드숨-스프링 과정 회고록' 카테고리의 다른 글
[회고록] 코드숨 Spring - 6주차 코드리뷰 (JWT) (0) | 2021.03.06 |
---|---|
[회고록] 코드숨 Spring - 5주차 코드리뷰 (Validation, DTO, Dozer Mapper) (3) | 2021.02.27 |
[회고록] 코드숨 Spring - 4주차 코드리뷰 (클린 아키텍처, Spring Data JPA, Repository) (0) | 2021.02.19 |
[회고록] 코드숨 Spring - 2주차 코드리뷰 (Spring Web MVC, ControllerAdvice, Marko.js) (0) | 2021.01.25 |
[회고록] 코드숨 Spring - 1주차 코드리뷰 (REST API, Jackson) (0) | 2021.01.18 |