728x90
스프링 기반 REST API 개발
4. 이벤트 목록 조회 및 수정 REST API 개발
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/spring-rest-api-study/tree/chap04-04_test_code_refectoring
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/spring_rest-api/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
4. 테스트 코드 리팩토링
여러 컨트롤러 간의 중복 코드 제거하기
- 클래스 상속을 사용하는 방법
@Ignore
애노테이션으로 테스트로 간주되지 않도록 설정
BaseControllerTest 라는 리팩토리용 설정 클래스 생성
공용으로 사용하는 중복 애노테이션과 의존성 주입 코드를 한군데 모아서 중복을 제거
사용하는 곳에서는 extends
로 상속을 받아서 사용하면 됨
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@AutoConfigureRestDocs
@Import(RestDocsConfiguration.class)
@ActiveProfiles("test")
@Ignore
public class BaseControllerTest {
@Autowired
protected MockMvc mockMvc;
@Autowired
protected ObjectMapper objectMapper;
@Autowired
protected ModelMapper modelMapper;
}
EventControllerTests 가 BaseControllerTest를 상속받도록 수정
BaseControllerTest 를 상속받도록 수정하고 BaseControllerTest 에 이미 설정된 어노테이션과 @Autowired
객체 제거
// 어노테이션 제거
// @RunWith(SpringRunner.class)
// @SpringBootTest
// @AutoConfigureMockMvc
// @AutoConfigureRestDocs
// @Import(RestDocsConfiguration.class)
// @ActiveProfiles("test")
public class EventControllerTests extends BaseControllerTest {
// @Autowired 객체 제거
// MockMvc mockMvc;
// @Autowired 객체 제거
// ObjectMapper objectMapper;
// @Autowired 객체 제거
// ModelMapper modelMapper;
IndexControllerTest 도 BaseControllerTest를 상속받도록 수정
BaseControllerTest 를 상속받도록 수정하고 BaseControllerTest 에 이미 설정된 어노테이션과 @Autowired
객체 제거
// 어노테이션 제거
// @RunWith(SpringRunner.class)
// @SpringBootTest
// @AutoConfigureMockMvc
// @AutoConfigureRestDocs
// @Import(RestDocsConfiguration.class)
// @ActiveProfiles("test")
public class IndexControllerTest extends BaseControllerTest {
// @Autowired 객체 제거
// MockMvc mockMvc;
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 기반 REST API 개발] 5-2. 스프링 시큐리티 적용 (0) | 2020.04.02 |
---|---|
[스프링 기반 REST API 개발] 5-1. Account 도메인 추가 (0) | 2020.04.01 |
[스프링 기반 REST API 개발] 4-3. Events 수정 API 구현 (0) | 2020.03.30 |
[스프링 기반 REST API 개발] 4-2. Event 조회 API 구현 (0) | 2020.03.29 |
[스프링 기반 REST API 개발] 4-1. Event 목록 조회 API 구현 (0) | 2020.03.28 |
댓글