반응형
🤍스프링부트와 aws로 혼자 구현하는 웹서비스 2장
- 테스트코드의 필요성
-대부분의 회사에서 테스트 코드에 관해 요구를 하고 있다고 한다.
-테스트코드는 개발 단계 초기에 문제를 발견할 수 있게 도와준다.
-불확실성을 감소시킬 수 있다.
🤍1.Application 클래스 생성
- @SpringBootApplication : 스프링부트 자동 설정, 스프링 Bean 읽기와 생성이 모두 자동으로 설정됨.
- @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 항상 프로젝트 최상단에 위치해야 함.
- SpringApplication.run : 내장 WAS를 실행.
- 내장 WAS란? 별도로 외부에 WAS를 두지 않고 애플리케이션을 실행할 때 내부에서 WAS를 실행함.
- '언제 어디서나 같은 환경에서 스프링부트를 배포'할 수 있기 때문에 스프링부트에서는 외장보다는 내장 WAS 사용을 권장함.
🤍2.Helloontroller.java 생성, 간단한 API 만들기
- @RestController : 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어줌.
- ㄴ각 메소드마다 @ResponseBody를 선언했던 것을 한번에 사용할 수 있게 해줌.
- @GetMapping : HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어줌.
- ㄴ예전에는 @RequestMapping으로 사용되었다.
🤍3.테스트코드를 작성할 HelloControllerTest 생성
🔍@RunWith
- 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행시킴.
- 스프링부트 테스트와 JUnit 사이에 연결자 역할을함.
🔍@WebMvcTest
- 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션
- 선언할 경우 @Controller, @ControllerAdvice 등 사용 가능
🔍@Autowired
- 스프링이 관리하는 빈(Bean)을 주입받음.
🔍@private MockMvc mvc
- 웹 API 테스트 시 사용
- 스프링 MVC 테스트의 시작점
🔍mvc.perform(get("/hello"))
- MockMvc를 통해 /hello 주소로 HTTP GET 요청을 함.
🔍.andExpect(status().isOk())
- mvc.perform 결과를 검증한다.
- Http Header의 Status(200, 404, 500 등)를 검증한다.
🔍.andExpect(content().string(hello))
- mvc.perform의 결과를 검증한다.
- Controller에서 "hello"를 리턴하기 때문에 이 값이 맞는지 검증한다.
테스트 통과!!
Application.java 실행
localhost:8080/hello로 접속하면 hello가 잘 노출됨을 확인할 수 있다.
반응형
'💻 my code archive > 🏷️JAVA & Spring(Boot)' 카테고리의 다른 글
스프링부트 공부기록(6) - JPA Auditing으로 생성 시간/수정시간 자동화하기 (0) | 2022.02.27 |
---|---|
스프링부트 공부기록(5) - 게시판 프로젝트 :: Dao 도메인 패키지, 글 등록, 수정, 조회 JPA 어노테이션, 테스트 코드 작성 (0) | 2022.02.27 |
스프링부트 공부기록(4) - JPA로 데이터베이스 다루기 (0) | 2022.02.27 |
스프링부트 공부기록(3) - 롬복 사용하기 (0) | 2022.02.26 |
스프링부트 공부기록(1) - intelliJ Gradle 기본 개발 환경 설정, Github 연결 (0) | 2022.02.25 |