Search

반응형

'Java'에 해당되는 글 52건

  1. 2021.10.24 [스프링 왕초보]3. Spring boot Test. 스프링 부트와 JUnit5로 웹 테스트(with)JUnit5
  2. 2021.10.17 [스프링 왕초보]2. Spring boot IDE 설치해보기. 2/2(스프링 부트)
반응형

이제 개발에 앞서 TDD 환경을 구성해 보고 싶다.

스프링 부트에서 테스트 코드 작성하는 방법을 확인해본다.

TDD에 대한 포스팅은 다음에 공부를 좀 하고 정리해보자.

준비는 최신 스프링 부트(Spring Boot IDE)를 설치하고

JUnit5를 활용해보자.

먼저 Spring Starter Project로 프로젝트를 하나 만들어보자.

이름은 JUnitProject로 한다.

Dependencies는 위 사항으로 체크하고 Spring Web은 꼭 추가하자.

이제 Controller를 생성한다.

생성할 때 구성한 package에서 controller를 추가하고 

JUnitController.java를 생성한다.

마우스 우측 클릭해서 class를 추가하면 된다.

JUnitController가 생성되면 @RestController와 @GetMapping("/")을

클래스명과 메서드명에 추가해 준다.

해당 import도 같이 추가해준다.

@GetMapping의 값은 "/"로 했는데

localhost:8080/ 으로 접근이 가능하게 해 준다.

만약 /뒤에 다른 이름으로 접근하고 싶다면 지정해 준다.

예를 들어 @GetMapping("/abc")라고 지정하면

localhost:8080/abc로 URL을 브라우저(크롬 등)에 입력하면

해당 메서드 hello()가 실행된다.

이제 Boot Dashboard에서 local 하단에 방금 만든 JUnitProject를 선택하고

서버를 구동해 준다. (Re)Start를 클릭하거나 우측 클릭으로 해당 메뉴를 클릭하면 된다.

서버가 구동되었으면 console에 정상 로그가 나타난다.

그리고 브라우저(크롬 등)를 실행한 뒤 localhost:8080을 넣고 연결한다.

이제 기본 스프링 부트 프로젝트가 생성되었다.

이제 테스트 코드를 작성해보자.

src/test/java라는 디렉터리에 com.tiboy가 있고

하위에 JUnitProjectApplicationTests.java가 자동으로 생성되었음을 확인하자.

@SpringBootTest와 @Test 어노테이션도 보인다.

JUnitProjectApplicationTests.java에 우클릭해서 Run As를 선택하면 JUnit Test가 보인다.

클릭하면 테스트가 실행된다.

그럼 이렇게 JUnit탭이 활성화되고 테스트가 진행된다.

특별히 코딩한 부분이 없기에 오류 없이 진행되었다.

이제 @AutoConfigureMockMvc 어노테이션을 사용해서 테스트 코드를 작성해보자.

https://spring.io/guides/gs/testing-web/ 활용

@Autowired를 사용해서 MockMvc 객체를 주입하고

"Wow Hello!"를 출력하는지 비교하는 테스트 코드다.

.andDo(print()) 부분을 추가하면 console에 좀 더 정확한 정보를 확인할 수 있다.

이렇게 잘 나온다.

.andExpect(content().string(containsString("Wow Hello!")) 이 부분은

출력 값을 비교한다.

아래 코드를 보자.

hello()메서드는 return값이 "Wow Hello!"이다.

그럼 테스트 코드에서 값을 바꿔보면 어떻게 될까?

"Wow Hello!!"로 기존 결과값에 !를 하나 더 넣었다.

이제 테스트해보자.

Failures가 1개 발생했다.

바로! 한 개가 더 있다고 값이 다르다면서 에러를 보여준다.

정상적으로 테스트 코드가 잘 작동됨을 확인할 수 있다.

같은 코드 같지만 어노테이션이 바뀌었다.

@SpringBootTest @AutoConfigureMockMvc 이 두 개의 어노테이션이 빠지고

@WebMvcTest로 변경되었다.

첫 번째 구성은 전체 스프링 애플리케이션 컨텍스트가 실행되지만,

두 번째는 테스트 범위를 웹 레이어로만 지정하고

특히 특정 클래스만을 지정해서 테스트할 수도 있다.

@WebMvcTest(JUnitController.class)처럼 말이다.

이제 기본적인 테스트 코드 환경을 만들고 실행도 해봤다.

기존 책들은 JUnit4 기준으로 되어 있기에 JUnit5 기준으로 소스를 구성해 봤다.

참고로 JUnit4는 vintage이고 JUnit5는 jupiter이다.

이번 포스팅은 여기까지~

반응형
반응형

 스프링 왕초보 1.에서 스프링 부트 환경을 위해 필요한 openJDK 설치를 해봤는데..

이제 Spring.io에 가서 IDE를 설치해봐야겠다.

이클립스에서 STS를 다운받아 설치는 했지만

이번에는 Spring에서 제공하는 IDE를 설치해볼것이다.

이 IDE도 이클립스 기반이다.

먼저 Spring.io에 접속하자.

 

눈에 Download가 바로 보이지 않는군.

그래서 상단에 있는 메뉴 중 Projects를 선택하면 하단에 DEVELOPMENT TOOLS가 보이네.

내가 원하는 Spring Tools 4가 있군..클릭~

이클립스 기반, Visual Studio Code 기반, Theia 기반으로 구분되어 있네.

이클립스 기반에 Windows 버전으로 다운받아야겠군.

총 540M정도 되네...

 

다운이 완료되었다.

그런데 JAR 파일이네..

openJDK가 설치되어 있으면 더블클릭시 실행된다.

실행되면 아래와 같이 같은 공간에 IDE 폴더가 생성되는군.

폴더에 들어가보면 다음과 같은 구성이 되어 있군.

저기 아래 초록색 동그라미 아이콘에 SpringToolSuite4가 실행파일 같은데..

우선 폴더를 복사해서 C 아래로 이동시키자.

더블클릭 시도!~

오 실행이 되는군~.

C 드라이브에 sbWorkspace 폴더를 생성하고 Workspace를 설정하자.

다음 Launch를 클릭해서 실행하자.

이클립스네.

이렇게 실행바가 나타나고 실행이 된다.

최초 실행화면이다.

이클립스네..ㅎㅎ

이제 스프링 부트(Spring boot) 설치 했으니 

 HelloWorld! 를 출력해서 잘 설치되었는지 구동 방식도 확인해보자.

 

좌측 상단에 있는 Create new Spring Starter Project를 클릭하자.

이런 창이 나타난다.

겁먹지 말고 하나씩 시작하자.

먼저 Name이 Demo인데 바꾸자.

MyHello로 변경한다.

이름은 변경했고 다음은 뭘까?

Type이 있는데..

Maven Project 와 Gradle Project가 있군.

요즘은 Gradle이 유명하다니 이걸로 선택!.

packaging은 Jar와 War가 있는데 Jar로 선택.

버전은 openJDK가 11이니 11로.

마지막 package는 myhello로 지정하고 Next를 클릭하니.

이런게 나타난다.

뭐 엄청 많은 내용들이 왼쪽에 보이지만 필요한 부분만 잘 선택하면 되겠지.

Developer Tools는 개발용 부트 툴이니 전부 선택하고

제일 마지막의 Web에서 Spring Web을 추가해준다.

우선 이정도만 가지고 진행을 해보자.

Finish를 누르고 나면 아래와 같이 구성된다.

스프링 부트(Spring boot)는 간단하게 실행해서 테스트 할 수 있도록 톰캣이 내장되어 있다고 했다.

그러면 테스트를 해봐야겠군.

우선 톰캣을 따로 설정하지 않았고

내장되어 있다고 하니 실행을 먼저 해봐야겠다.

프로젝트에 우측 클릭을 하고 Run As를 선택하면 5 Spring Boot App이 보인다.

클릭해보자.

실행을 하니 콘솔에 로그에 대한 정보가 떴다.

사이즈를 늘려달라는 의미인 듯 하다.

Console buffer size가 80,000인데 1,000,000으로 늘려보자.

실행을 하면 우측 하단의 Console에 아래와 같이 로그가 생성된다.

중간쯤 Tomcat이란 글자가 보이는 거 보니 정말 톰캣이 있나보다.

이제 실행이 잘 되었는지 브라우저를 통해서 확인해보자.

크롬을 사용해서 localhost:8080으로 접근을 시도하니 위 페이지가 뜨네.

뭔가 부족해 보이는 듯 하다.

에러페이지니깐~

하지만 아직 HelloWorld를 출력하는 소스를 코딩하지 않았고

톰캣 구동 후 저렇게 뜨는건 정상이다. 쫄지 말자!!

 

이제 코딩을 시작해보자.

MVC 모델이니 컨트롤러를 구성해보자.

src/main/java에서 myhello를 구성했다.

그 하위 패키지에 controller 패키지를 구성하고 MyController.java를 생성하자.

마우스 우측 클릭을 해서 package와 Class를 선택해서 생성하면 된다.

웹으로 호출하기 위해 해당 controller는 @RestController로 어노테이션을 설정한다.

빨간 X표가 나오면 import 시켜주면 된다.

그리고 @RequestMapping("/myHello") 어노테이션으로 호출 경로를 지정하고

해당 페이지에 return 값을 넘겨준다.

그리고 localhost:8080/myHello를 다시 입력해보자.

이렇게 출력되면 성공~!

다들 고생했다.

이제 JDK와 IDE 설정이 기본으로 끝났다.

이제 본격적으로 spring에 대해 공부를 하나씩 차근차근 해보자!!

반응형