[E-2-3] HelloController 롬복으로 전환
2020. 1. 30. 14:46ㆍProject E/Project E 파트1
반응형
src/main/java
com.minokuma.book.springboot.web.dto
HelloResponseDto.java
더보기
package com.minokuma.book.springboot.web.dto;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public class HelloResponseDto {
private final String name;
private final int amount;
}
테스트 코드 작성
src/test/java
com.minokuma.book.springboot.web.dto
HelloResponseDtoTest.java
더보기
package com.minokuma.book.springboot.web.dto;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class HelloResponseDtoTest {
@Test
public void lombokTest(){
String name = "test";
int amount = 1000;
//when
HelloResponseDto dto = new HelloResponseDto(name, amount);
assertThat(dto.getName()).isEqualTo(name);
assertThat(dto.getAmount()).isEqualTo(amount);
}
}
테스트 코드 실행
에러 발생
에러 발생 시 그레이들 버전이 4.x 가 아닌 경우이다.
버전 다운그레이드 실시가 필요하다.
그레이들 다운그레이드
인텔리제이 하단 부분의 터미널 > gradlew wrapper --gradle-version 4.10.2 입력
테스트 코드 재실행
src/main/java
com.minokumabook.springboot.web
HelloController.java
더보기
package com.minokuma.book.springboot.web;
import com.minokuma.book.springboot.web.dto.HelloResponseDto;
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";
}
public HelloResponseDto helloDto(@RequestParam("name") String name, @RequestParam("amount") int amount){
return new HelloResponseDto(name, amount);
}
}
테스트 코드 수정 및 실행
src/test/java
com.minokuma.book.springboot.web
HelloControllerTest.java
더보기
package com.minokuma.book.springboot;
import com.minokuma.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.hamcrest.Matchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = HelloController.class)
public class HelloControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void returnHello() throws Exception {
String hello = "hello";
mvc.perform(get("/hello"))
.andExpect(status().isOk())
.andExpect(content().string(hello));
}
@Test
public void returnHelloDto() throws Exception {
String name = "hello";
int amount = 1000;
mvc.perform(get("/hello/dto")
.param("name", name)
.param("amount", String.valueOf(amount)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name", is(name)))
.andExpect(jsonPath("$.amount", is(amount)));
}
}
반응형
'Project E > Project E 파트1' 카테고리의 다른 글
[E-2-2] 롬복 설치하기 (0) | 2020.01.30 |
---|---|
[E-2-1] 스프링 부트에서 테스트 코드 작성 (0) | 2020.01.30 |