Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Archives
Today
Total
관리 메뉴

희디비

[Chapter2] 스프링 부트와 AWS로 혼자구현하는 웹서비스 본문

Clone Coding

[Chapter2] 스프링 부트와 AWS로 혼자구현하는 웹서비스

희디비 2023. 10. 17. 19:34

단위테스트

- 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 등을 어노테이션으로 자동생성합니다.