kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 설계 원칙
  • 결합도
  • 책임
  • 객체지향 프로그래밍
  • 응집도
  • 역할

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

Book/Spring boot 와 AWS로 혼자 구현하는 웹서비스

[Book] 4) HelloController 생성과 테스트를 해보자!

2022. 3. 27. 18:21

👻  메인 클래스를 살펴봅시다.

@SpringBootApplication -> 1
public class BoardSpringbootWebserviceApplication{
    public static void main(String[]args) {
        SpringApplication.run(BoardSpringbootWebserviceApplication.class, args);
    }
}

  1. @SpringBootApplication 으로 인해 스프링 부트의 자동 설정과 스프링이 관리하는 Bean 읽기와 생성을 모두 자동으로 설정됩니다.

주의 : @SpringBootApplication 이 있는 위치부터 설정을 읽어가기 때문에 이클래스는 항상 프로젝트의 최상단에 위치해야만 합니다.

main method 에서 실행하는 SpringApplication.run() 으로 인해 내장 WAS 를 실행하게 됩니다.

spring boot는 WAS를 따로 설치하지 않고 내장 WAS 를 이용하기 때문에 언제 어디서나 같은 환경에서 스프링 부트를 배포할 수 있습니다.

👻  Json을 반환하는 RestController 를 생성해봅시다.

@RestController -> 1
public class HelloController{

    @GetMapping("/hello") -> 2
    public String hello() {
        return "hello";
    }
}
  1. json 을 반환하는 컨트롤러로 만들어 줍니다.
  2. http method 인 get의 요청을 받을 수 있는 api를 만들어 줍니다.

hello 를 리턴하는 기능을 만들었으니 테스트 코드를 작성을 해야겠죠??

👻  테스트 코드를 작성해보자

@WebMvcTest(controllers = HelloController.class) -> 1
class HelloControllerTest{

    @Autowired -> 2
    private MockMvc mvc; -> 3

    @Test -> 4
    @DisplayName("hello_반환되다") -> 5
    void hello() throws Exception{
        // given
        String hello = "hello";

        // when && then
        mvc.perform(get("/hello")) -> 6
            .andExpect(status().isOk()) -> 7
            .andExpect(content().string(hello)); -> 8
        }
}
  1. web 관련된 클래스들의 테스트를 하기 위한 에노테이션 입니다. @Controller, @ControllerAdvice 등 에사용하고 @Service 나 @Repository 에는 사용 할 수 없습니다.
  2. @Autowired 는 스프링이 관리하는 Bean 을 주입하게 해줍니다.
  3. 웹 api 를 테스트 할 때 사용하고 http의 method 인 get, post 등을 테스트 할 수 있습니다.
  4. 테스트 코드를 사용 할 때 @Test 를 붙여줍니다.
  5. 테스트 코드의 메서드 이름을 지어 줄 수 있습니다.
  6. MockMvc 를 통해 http get 요청을 합니다. 체이닝이 지원되어 여러 기능을 이어서 선언할 수 있습니다.
  7. mvc.get(”/hello”) 의 결과를 검증하고 status 가 isok 인지 검증합니다.
  8. mvc.get(”/hello”) 의 결과를 검증하고 응답 본문의 내용을 검증합니다. 반환 값이 “hello” 이므로 “hello” 가 맞는지 검증합니다.

'Book > Spring boot 와 AWS로 혼자 구현하는 웹서비스' 카테고리의 다른 글

[Book] 9) API 만들어보기! - 2  (0) 2022.03.30
[Book] 8) API 만들어보기! - 1  (0) 2022.03.30
[Book] 7) 출력되는 쿼리문을 MySQL 문법으로 수정 후 이슈  (0) 2022.03.30
[Book] 6) JPA 로 데이터베이스를 다루어보자!  (0) 2022.03.29
[Book] 5) 롬복(Lombok) 을 사용해보자!  (0) 2022.03.28
[Book] 3) 테스트 코드를 작성해보자!  (0) 2022.03.27
[Book] 2) 인텔리제이에서 깃허브와 연동해보자!  (0) 2022.03.27
[Book] 1) 프로젝트를 만들고 의존성을 추가해보자!  (0) 2022.03.27
    'Book/Spring boot 와 AWS로 혼자 구현하는 웹서비스' 카테고리의 다른 글
    • [Book] 6) JPA 로 데이터베이스를 다루어보자!
    • [Book] 5) 롬복(Lombok) 을 사용해보자!
    • [Book] 3) 테스트 코드를 작성해보자!
    • [Book] 2) 인텔리제이에서 깃허브와 연동해보자!
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바