티스토리 뷰
반응형
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args); // 내장 WAS를 실행
}
}
@SpringBootApplication
- @SpringBootApplication이 있는 위치부터 설정을 읽기 때문에 프로젝트의 최상단에 위치하는 클래스
- 스프링부트가 자동 설정됨
SpringApplication.run
- 내장 WAS를 실행
- 서버에 톰캣을 설치할 필요가 없고, 스프링 부트로 만들어진 Ja 파일로 실행
💡스프링 부트에서 내장 WAS를 사용하는 것을 권장하는 이유
⇒ 언제 어디서가 같은 환경에서 스프링 부트를 배포할 수 있다
Controller
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello";
}
}
ㄴ '/hello' 요청이 오면 문자열 hello를 반환하는 기능
@RestController
- 컨트롤러를 JSON을 반환하는 컨트롤러로 만듦
@GetMapping
- HTTP Method의 Get 요청을 받을 수 있는 API를 만듦
Test
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = HelloController.class)
public class HelloControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void hello가_리턴된다() throws Exception {
String hello = "hello";
mvc.perform(get("/hello"))
.andExpect(status().isOk())
.andExpect(content().string(hello));
}
}
@RunWith(SpringRunner.class)
- 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행
- 위의 코드에서는 SpringRunner라는 스프링 실행자를 사용
- 스프링 부트 테스트와 JUnit 사이에 연결자 역할
@WebMvcTest
- Web(Spring MVC)에 집중할 수 있는 어노테이션
- 사용 가능: @Controller, @ControllerAdvice 등
- 사용 불가능: @Service, @Component, @Repository 등
@Autowired
- Bean을 주입 받음
private MockMvc mvc
- 웹 API를 테스트할 때 사용
- 스프링 MVC 테스트의 시작점
- HTTP GET, POST 등에 대한 API를 테스트
mvc.perform(get("/hello"))
- /hello 주소로 HTTP GET 요청
- 체이닝을 지원하여 여러 검증 기능을 이어서 선언할 수 잇음
.andExpect(status().isOk())
- mvc.perform의 결과를 검증
- HTTP Header의 Status rjawmd
- 200, 404, 500 등의 상태 검증
- OK(200)인지 아닌지 검증
.andExpect(content().string(hello));
- mvc.perfrom의 결과를 검증
- 응답 본문의 내용 검증
테스트가 통과되었다.
port 8080(http)로 실행되는 것을 알 수 있다.
localhost:8080/hello에 접속하면 Hello가 출력되는 것을 볼 수 있다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- postman
- 2차 인터뷰
- postman tests
- hashcode
- Python
- graphql
- go 특징
- solidity
- git
- Basic Type
- 주생성자
- 코틀린
- 1차 인터뷰
- string
- downTo
- Kotlin
- DGS Framework
- 네이버 2022 공채
- postman collection
- pm.expect
- Kotlin In Action
- pm.test
- mysql
- squash merge
- github
- 확장 함수
- python3
- 코딩테스트
- java
- Squash and merge
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함