Red
: 항상 실패하는 테스트를 먼저 작성하고
Green
: 테스트가 통과하는 프로덕션 코드를 작성하고
Refactor
: 테스트가 통과하면 프로덕션 코드를 리팩토링한다.
Java > New > Package
com.spring.book.springboot 패키지 생성
com.spring.book.springboot > New > Java Class
Application Class 생성
코드 작성
@SpringBootApplication
: 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정 New > Package
web
패키지 생성 - 컨트롤러와 관련된 클래스
package com.spring.book.springboot.web;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController //JSON을 반환하는 컨트롤러로 만들어준다.
public class HelloController {
@GetMapping("/hello") // Get의 요청을 받을 수 있는 API 생성
public String hello(){
return "hello";
}
}
test 코드 작성
src /test / java 디렉토리에
위의 HelloController와 똑같이 패키지 다시 생성
package com.spring.book.springboot.web;
import com.spring.book.springboot.web.HelloController;
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.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
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));
}
}
@Controller
, @ControllerAdvice
사용가능@Service
, @Component
, @Repository
등 ✅화살표 클릭해서 테스트 코드 실행!
테스트가 통과됐다! 😉
Application 실행후 localhost:포트번호/hello를 실행하자!
hello 가 잘 뜨면 성공이다!
Run - Edit Configurations...
로 지정해주면 된다.