희디비
[Chapter2] 스프링 부트와 AWS로 혼자구현하는 웹서비스 본문
단위테스트
- TDD 첫번째 단계인 기능 단위의 테스트 코드를 작성하는것
이점
- 코드를 수정 할때마다 println()을 통해 눈으로 검증하지 않아도 된다.
- 규모가 큰 서비스에서 새로운 기능을 추가할때 이전의 기능을 보장해준다.
단위테스트를 하기위해 간단한 어플을 만듭니다.
@SpringBootApplication
- @SpringBootApplication이 있는 위치부터 설정을 읽기때문에 항상 프로젝트의 최상단 위치
- 스프링 부트 자동설정, 스프링 Bean 읽기 생성 모두 자동설정
- SpringApplication.run을 통해 내장WAS 실행 > Tomcat 설치필요X
스프링부트는 내장 WAS를 권장하는데 이를통해 '언제 어디서나 같은 환경에서 스프링 부트를 배포' 가능
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
컨트롤러 클래스를 만듭니다.
스프링이 처음이라 @RestController와 @Controller의 차이가 궁금하여 찾아 보았는데
간단히 설명하면 @Controller는 뷰를 반환하고 @RestController는 데이터를 Json 형태로 반환합니다.
자세한 설명이 궁금하시면 이 블로그에 정리가 잘 되어 있습니다. https://mangkyu.tistory.com/49
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
@GetMapping("/hello/dto")
public HelloResponseDto HellDto(@RequestParam("name") String name,@RequestParam("amount") int amount){
return new HelloResponseDto(name, amount);
}
}
테스트 코드를 작성합니다.
@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));
}
롬복(Lombok)
Getter , Setter, 기본생성자, toString 등을 어노테이션으로 자동생성합니다.
'Clone Coding' 카테고리의 다른 글
[Chapter8] EC2 서버에 프로젝트 배포하기 (1) | 2023.10.31 |
---|---|
[Chapter7] AWS에 데이터 베이스 환경 만들기(RDS) (0) | 2023.10.28 |
[Chapter4] 머스테치로 화면 구성하기 (0) | 2023.10.25 |
[Chapter3] SpringBoot JPA (0) | 2023.10.21 |
[Junit] java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test (1) | 2023.10.14 |