본문 바로가기
언어공부/JAVA&SPRING

[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 26회차 미션

by hobbiz 2020. 9. 4.
반응형

오늘은 스프링부트 프로젝트 (지인 정보 관리시스템) 3~5강을 들었다.

 

우선 강의는 지난번 강사님보다 설명이 풍부해서 초반에 '아 이래서 이걸 이렇게 했구나' 하는 생각이 많이 들어서 좋았다.

 

그런데 이번엔 IntelliJ 버전이 문제였다ㅋㅋ

 

강사님이 유료버전을 쓰시는건지, 몇몇 메뉴가 무료버전 (Community)에 없는 것 같다. 

 

처음에 프로젝트 만들때 해당 메뉴가 없어서 그냥 start.spring.io/ 에서 만들었는데

 

결국 http파일 생성할 때도 안돼서 유료버전 (Ultimate) 30일 무료체험을 다운받아서 쓰기로 했다.

 


아래와 같이 왼쪽에 메뉴들이 많이 나와야 하는데 무료버전에는 메뉴가 없었다ㅠ_ㅠ

 

 

 


 


지난번 강의때는 아무 것도 모르고 따라만 치던 어노테이션들에 대해서도 하나하나 꼼꼼히 설명해주셨다.

 

 

다시 한번 HelloWorld를 찍어보기

이렇게 브라우저에 여러번 들어가서 확인하는 것이 번거롭기 때문에

test 패키지에 http 파일을 만들고 GET메서드를 쓰면 콘솔창에서 아래 내용과 같이 확인할 수 있다.

 

GET http://localhost:8080/api/helloWorld

HTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 10
Date: Fri, 04 Sep 2020 11:59:01 GMT
Keep-Alive: timeout=60
Connection: keep-alive

HelloWorld



5강 .MockMvc 테스트 만들기

 

 

*HelloWorldController

 

package com.fastcampus.javaallinone.project3.mycontact.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
    @GetMapping(value = "/api/helloWorld")
    public String helloWorld(){
        return "HelloWorld";
    }
}

 

*HelloWorldControllerTest

 

package com.fastcampus.javaallinone.project3.mycontact.controller;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest
class HelloWorldControllerTest {
    @Autowired // @Autowired로 private을 감싸는 것: Spring context에서 Bean을 주입하겠다는 의미
    private HelloWorldController helloWorldController;

    private MockMvc mockMvc;

    @Test
    void helloWorld(){
//        System.out.println("test");
        System.out.println(helloWorldController.helloWorld());

        assertThat(helloWorldController.helloWorld()).isEqualTo("HelloWorld");
    }

    @Test
    void MockMvcTest() throws Exception {
        mockMvc = MockMvcBuilders.standaloneSetup(helloWorldController).build(); //mockMvc를 생성
        mockMvc.perform(
                MockMvcRequestBuilders.get("/api/helloWorld")// http의 GET메서드로 /api/helloWorld를 호출
                ).andDo(MockMvcResultHandlers.print())//결과값을 보여주는 것
                //아래는 자동화된 결과체크
                .andExpect(MockMvcResultMatchers.status().isOk())//status가 200(Ok)인지 확인
                .andExpect(MockMvcResultMatchers.content().string("HelloWorld"));
                                                            //respond의 내용이 body = HelloWorld인지 체크
    }

}

 

 

 

 

패스트캠퍼스 강의: https://bit.ly/3ilMbIO

 

Java 웹 개발 마스터 올인원 패키지 Online. | 패스트캠퍼스

자바 기초문법부터 프로젝트 실습까지 Java 문법부터 스프링/스프링부트, 트렌디한 기술인 JPA까지 모두 배우는 온라인 강의입니다.

www.fastcampus.co.kr

 

반응형

댓글