여니의 프로그래밍 study 225

[스프링부트] MockMvc 관련 메소드

private MockMvc mvc : 웹 API 테스트(GET,POST 등) 진행시 사용합니다. 스프링 MVC 테스트의 시작점입니다. mvc.perform(get("/hello")) : MockMVC를 통해 /hello 주소로 HTTP GET 요청을 합니다. 체이닝이 지원됩니다. .andExpect() : 응답 결과를 검증합니다. - 상태코드 : status() .isOk() : 200 .isNotFound() : 404 .isMethodNotAllowed() : 405 .isInternalServerError() : 500 .is(int status) : status 상태코드 - 리턴하는 뷰 이름 검증 : view() .name("example") > 리턴하는 뷰 이름이 example인가! - 리다이..

[스프링부트] 값 넘겨주는 유닛 테스트코드 작성하기(RequestParam)

@RequestParam은 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션입니다. @RequestParam("가져올 데이터의 이름") [데이터타입] [가져온 데이터를 담을 변수] HelloResponseDto.java 응답 데이터를 받을 dto 클래스입니다. package com.yeony.web.springbootwebproject.web.dto; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor public class HelloResponseDto { private final String name1; private final int amount1; } HelloResponseDt..

[스프링부트] error: variable name not initialized in the default

테스트 코드를 돌렸더니 위와 같은 에러가 떴습니다. @Getter를 이용해서 선언된 모든 필드의 get 메서드를 생성해줬습니다. 그리고 @RequiredArgsConstructor를 이용해서 선언된 모든 final 필드가 모함된 생성자를 생성해줍니다. 물론 final이 안 붙어있으면 생성해주지 않습니다. 위와 같이 오류가 나는 이유는 그래들 버전이 5로 올라가면서 lombok을 프로젝트에 추가해주는 방법이 달라졌기 때문입니다. 책에 적혀 있는대로만 하면 안되더라구요.. 롬북을 사용하려면 아래와 같이 총 4개의 구문을 적어주어야합니다. 테스트 성공!

[스프링부트] assertThat 인식 안되는 문제 해결

AssertJ란? : 자바 JUnit의 테스트코드에 사용되어, 테스트코드의 가독성과 편의성을 높여주는 라이브러리입니다. 메서드 체이닝을 지원해서 더 직관적이고 읽기 쉬운 테스트코드 작성이 가능합니다. 참고로 자바 8 이상은 AssertJ 3.x버전을 사용해야 합니다. static import를 통해 AssertJ의 다양한 API를 클래스 이름 없이 사용이 가능합니다. AssertJ에서 모든 테스트 코드는 assertThat()으로 시작합니다. assertThat(테스트타겟).메소드1().메소드2(). ... 다양한 메소드를 확인할 수 있는 사이트! https://www.javadoc.io/doc/org.assertj/assertj-core/latest/org/assertj/core/api/package-..

[스프링부트] 롬북(lombok)의 개념, 설치 방법 | maven repository

참고서적 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 롬북을 사용하는 이유가 뭔지 궁금했습니다. 일단 그래서 롬북의 개념에 대해 알아봤습니다. 롬북을 사용하지 않으면 모델 객체마다 반복적으로 getter나 setter 메소드를 생성해줘야합니다. 변수명이 바뀌게 되는 경우에도 다시 만들어줘야하는 번거로움이 있습니다. 그래서 롬북을 사용하게 되면 @annotation으로 위 역할을 대신 해줍니다. 즉 정리하자면 롬북은 어노테이션을 통해 특정 메서드를 자동으로 생성해주는 라이브러리입니다. 참고로 롬북은 프로젝트마다 설정해줘야합니다. 물론 플러그인은 한 번만 하면 됩니다. (2번 과정) 1번과 3번 과정을 프로젝트마다 해줘야합니다. 1. build.gradle 파일에 아래와 같이 ..

[스프링부트] 롬북 플러그인 설치 & compile, compileOnly,implementation

책에서는 compile('org..')를 사용하라고 했으나 프로젝트에서 사용하면 글씨가 회색으로 변하면서 비활성화가 됩니다. 그래서 compile과 compileOnly가 무슨 차이가 있는건지 알아봤습니다. https://hack-jam.tistory.com/13 [Gradle] implementation vs compile 서론 Gradle dependency 관련해서 검색을 하다보면, 어떤 글에서는 implementation을 사용하고 어떤 글에서는 compile을 사용하는 경우가 있다. 사실 어떻게 사용해도 돌아가긴 해서, 음... 무슨 차이지?하고 bluayer.com compileOnly는 의존성 옵션입니다. compile 시에만 빌드하고, 빌드 결과물에는 포함되지 않습니다. compile은 A..

[스프링부트] 테스트코드 작성하기, hello 출력하기

HelloController.java package com.yeony.web.springbootwebproject.web; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello"; } } HelloControllerTest.java package c..

[스프링부트] 어노테이션 모음

@SpringBootApplication : 스프링 부트의 자동설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정됩니다. 특히 @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 항상 이 클래스는 프로젝트의 최상단에 위치해있어야 합니다. @SpringBootApplication public class SpringbootWebprojectApplication { public static void main(String[] args) { SpringApplication.run(SpringbootWebprojectApplication.class, args); } // SpringApplication.run으로 내장 WAS(웹 애플리케이션 서버)를 실행합니다. // 내장 WAS란..