SpringBoot 프로젝트 의 생 성과 유닛 테스트 에 대한 자세 한 설명
                                            
 10859 단어  SpringBoot프로젝트 생 성유닛 테스트
                    
Spring Boot 디자인 은 초기 에 최소한 의 설정 으로 가장 빠 른 속도 로 Spring 프로젝트 를 시작 하고 실행 하기 위해 서 였 다.Spring Boot 는 특정한 설정 을 사용 하여 생산 준비 형 프로젝트 를 구축 합 니 다.
Hello World
1.Spring Initializr 에 추가 할 수도 있 고 pom.xml 에 다음 코드 를 수 동 으로 추가 할 수도 있 습 니 다.
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>Spring-boot-starter-web</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
</dependency>2.컨트롤 러 내용 작성
디 렉 터 리 src\main\java\다음 에 새 가방 을 만 듭 니 다
<scope>test</scope>그리고 이 가방 아래 에 HelloController 를 만 듭 니 다.@RestControler 는 Contoller 의 방법 이 JSON 형식 으로 출력 되 므 로 다른 추가 설정 이 필요 하지 않다 는 뜻 입 니 다.@Controller 로 설정 하면 출력 내용 을 페이지 로 표시 합 니 다.
@RequestMapping("hello")은 경로 정 보 를 제공 합 니 다."hello"경로 의 HTTP Request 는 hello()방법 에 매 핑 됩 니 다.
주 프로그램 시작
프로젝트 의 DemoAppicationrun 명령 을 오른쪽 클릭 하면 프로젝트 를 시작 할 수 있 습 니 다.다음 내용 이 나타 나 면 시작 성공 을 표시 합 니 다.
@RestController
public class HelloController {
 @RequestMapping("/hello") 
 public String hello(){
  return "hello world";
 }
 }프로젝트 의 DemoAppicationrun 명령 을 오른쪽 클릭 하면 프로젝트 를 시작 할 수 있 습 니 다.다음 내용 이 나타 나 면 시작 성공 을 표시 합 니 다.
 
 시작 과정 에서 javaClassNotFoundException 이상 이 발생 하면 M aven 설정 이 올 바른 지 확인 하 십시오.구체 적 으로 다음 과 같 습 니 다.
 
 Spring Boot 는 또 다른 두 가지 시작 항목 의 방식 을 제공 했다.
 #         
 cd ../demo
 #        
 mvn clean package
 #   Jar       
 java -jar target/hello-0.0.1-SNAPSHOT.jar 
 개발 단 계 는 개발 과정 에서 디 버 깅 하기 편리 하도록 첫 번 째 방식 으로 시작 하 는 것 을 권장 합 니 다.
4.만약 우리 가 인 자 를 입력 하고 싶다 면 어떻게 합 니까?
요청 전 삼 은 일반적으로 URL 주소 전 삼 과 폼 전 삼 두 가지 방식 으로 나 뉘 는데 이들 은 각각 장단 점 이 있 지만 기본적으로 키 값 이 맞 는 방식 으로 파 라 메 터 를 백 엔 드 에 전달 합 니 다.백 엔 드 프로그램 으로서 전단 에서 사용 하 는 방식 에 관심 을 가지 지 않 고 매개 변수의 키 에 따라 값 을 얻 을 수 있 습 니 다.Spring 은 여러 가지 매개 변수 수신 방식 을 제공 합 니 다.본 장 에서 우 리 는 가장 간단 한 방식 인 URL 을 통 해 전 참 됩 니 다.백 엔 드 에서 요청 을 처리 하 는 방법 에 매개 변수 키 와 같은 이름 의 속성 이 존재 한다 면 요청 하 는 과정 에서 Spring 은 자동 으로 매개 변수 값 을 속성 에 할당 하고 마지막 으로 방법 에서 직접 사용 하면 됩 니 다.다음은 hello()를 예 로 들 어 보 여 드 리 겠 습 니 다.
@RestController
public class HelloController {
 @RequestMapping("/hello")
 public String hello(String name) {
  System.out.println("name..." + name);
  return "hello world, " + name;
 }
} 
 여기까지 우리 의 첫 번 째 Spring Boot 프로젝트 가 개발 되 었 습 니 다.간단 하 다 고 생각 하 십 니까?테스트 를 통 해 Controller 내 관련 코드 를 수정 하려 면 프로젝트 를 다시 시작 해 야 효력 이 발생 하 는 것 으로 밝 혀 졌 습 니 다.이렇게 하 는 것 은 매우 번 거 롭 지 않 습 니까?조급해 하지 마 세 요.Spring Boot 는 또 다른 구성 요 소 를 제공 하여 해결 합 니 다.
열 배치
열 시동 은 하나의 구성 요소∶spring-boot-devtools 를 사용 해 야 합 니 다.이것 은 Spring Boot 가 제공 하 는 개발 도구 패키지 입 니 다.그 중에서 우리 가 필요 로 하 는 열 배치 기능 을 포함 하고 이 기능 을 사용 하기 전에 설정 을 좀 더 해 야 합 니 다.
의존 도 를 높이다
pom.xml 파일 에 spring-boot-devtools 구성 요 소 를 추가 합 니 다.
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
  </dependency>
 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
     <fork>true</fork>
    </configuration>
   </plugin>
  </plugins>
 </build>File-settings-Compiler 명령 을 선택 한 다음 Build procject automati cally 체크 상 자 를 선택 하 십시오.낮은 버 전의 IDEA 는 make procject 자동 체크 상 자 를 선택 하 십시오.
 
 단축 키 Ctrl+Shift+A 를 사용 하여 입력 상자 에 Registry 를 입력 하고 체크 상 자 를 선택 하 십시오:
 
 모든 설정 이 완료 되면 IDEA 는 열 배 치 를 지원 합 니 다.코드 를 변경 해 보 세 요.5 초 를 기다 리 면 Spring Boot 가 자동 으로 다시 불 러 옵 니 다.더 이상 수 동 으로 누 르 지 않 아 도 다시 시작 할 수 있 습 니 다.
왜 IDEA 는 뒤에 있 는 이 단 계 를 더 설정 해 야 합 니까?IDEA 는 기본적으로 자동 으로 컴 파일 되 지 않 기 때문에 수 동 으로 설정 해 야 자동 으로 컴 파일 되 고 열 배 치 는 프로젝트 의 자동 컴 파일 기능 에 의존 합 니 다.
이 모듈 은 완전한 포장 환경 에서 실 행 될 때 사용 하지 않 습 니 다.자바-jar 를 사용 하여 프로그램 을 시작 하거나 특정한 classloader 로 시작 하면'생산 환경'이 라 고 생각 합 니 다.
유닛 테스트
『8195』단원 테스트 는 우리 일상 개발 에서 없어 서 는 안 되 고 우수한 프로그래머 이 며 단원 테스트 개발 도 매우 완선 합 니 다.다음은 Spring Boot 가 유닛 테스트 에 어떤 지원 을 했 는 지 살 펴 보 겠 습 니 다.
만약 우리 가 hello World 만 실행 하고 싶다 면@Test 주석 하나만 있 으 면 됩 니 다.src/test 디 렉 터 리 에 HelloTest 클래스 를 새로 만 듭 니 다.코드 는 다음 과 같 습 니 다.
public class HelloTest {
 @Test
 private void hello() {
  System.out.println("hello world");
 }
}이전 에는 웹 요청 을 테스트 할 때 관련 매개 변 수 를 수 동 으로 입력 하여 페이지 에서 효 과 를 테스트 하거나 post 요청 을 직접 작성 해 야 했 습 니 다.Spring Boot 시스템 에서 Spring 은 MockMVC 를 사용 하여 웹 테스트 를 진행 하 는 간단 한 솔 루 션 을 제 시 했 고,MockMVC 에는 post,get 요청 을 모 의 하고 되 돌아 오 는 결과 가 정확 한 지 판단 할 수 있 는 도구 류 와 방법 이 많이 내장 되 어 있 으 며,print()를 이용 하여 실행 결 과 를 인쇄 할 수도 있다.
@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
 private MockMvc mockMvc;
 @BeforeEach
 public void setUp() {
  mockMvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
 }
 @Test
 public void getHello() throws Exception {
  mockMvc.perform(MockMvcRequestBuilders
    .post("/hello?name=reminis")
    .accept(MediaType.APPLICATION_JSON))
    .andDo(MockMvcResultHandlers.print());
 }
}클래스 에@SpringBootTest 를 추가 하면 시스템 은 자동 으로 Spring Boot 용 기 를 불 러 옵 니 다.일상적인 테스트 에서 bean 을 주입 하여 국부 적 인 업무 테스트 를 할 수 있다.MockMvcRequestBuilders 는 post,get 요청 을 지원 할 수 있 습 니 다.MockMvcResultHandlers.print()방법 을 사용 하면 요청 과 해당 하 는 과정 을 모두 인쇄 할 수 있 습 니 다.구체 적 으로 다음 과 같 습 니 다.
MockHttpServletRequest:
  HTTP Method = POST
  Request URI = /hello
  Parameters = {name=[reminis]}
   Headers = [Accept:"application/json"]
    Body = <no character encoding set>
 Session Attrs = {}
Handler:
    Type = com.reminis.demo.controller.HelloController
   Method = com.reminis.demo.controller.HelloController#hello(String)
Async:
 Async started = false
  Async result = null
Resolved Exception:
    Type = null
ModelAndView:
  View name = null
    View = null
   Model = null
FlashMap:
  Attributes = null
MockHttpServletResponse:
   Status = 200
 Error message = null
   Headers = [Content-Type:"application/json", Content-Length:"20"]
  Content type = application/json
    Body = hello world, reminis
 Forwarded URL = null
 Redirected URL = null
   Cookies = []
    Type = null
ModelAndView:
  View name = null
    View = null
   Model = null
FlashMap:
  Attributes = null
MockHttpServletResponse:
   Status = 200
 Error message = null
   Headers = [Content-Type:"application/json", Content-Length:"20"]
  Content type = application/json
    Body = hello world, reminis
 Forwarded URL = null
 Redirected URL = null
   Cookies = []
 @Test
 public void getHello() throws Exception {
  mockMvc.perform(MockMvcRequestBuilders
    .post("/hello?name=reminis")
    .accept(MediaType.APPLICATION_JSON))
    /*.andDo(MockMvcResultHandlers.print())*/
    .andExpect(MockMvcResultMatchers.content(). string(Matchers.containsString("reminis")));
 }스프링 부츠 를 사용 하기 전과 사용 후 간단하게 비교 해 보 겠 습 니 다.Spring 부팅 사용 전:
웹.xml 설정,Spring 과 Spring MVC 불 러 오기데이터베이스 연결 설정,Spring 사무 설정
운행
비 교 를 통 해 Spring Boot 는 개발 단계 에서 대량의 최적화 를 하여 프로젝트 를 신속하게 구축 하기 쉽다 는 것 을 알 수 있다.
이상 은 SpringBoot 프로젝트 의 생 성과 유닛 테스트 에 대한 상세 한 내용 입 니 다.SpringBoot 프로젝트 의 생 성과 유닛 테스트 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.