inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 웹 MVC

도메인 클래스 컨버터

질문있습니다.

702

dsdsd

작성한 질문수 6

1

강의를 보고 소스를 똑같이 입력하였는데요.

테스트 결과값이 다르게 나오게되어 문의드립니다.

java.lang.AssertionError: Response content expected:<hello keesun> but was:<hello 1>

Expected :hello keesun

Actual   :hello 1

break point를 찍고 person객체와 savedPerson객체가 동일한 값이 들어있는걸 확인하였습니다.

컨버터가 동작을 안한건지

테스트 결과값을 toString을 찍어보면 id=null, name='1'로 나옵니다.

뭐가 문제인건가요?..ㅠ

테스트 코드도 첨부해드립니다.

@SpringBootTest
@AutoConfigureMockMvc
public class SampleControllerTest {

@Autowired
MockMvc mockMvc;

@Autowired
PersonRepository personRepository;

@Test
public void hello() throws Exception {
Person person = new Person();
person.setName("keesun");
Person savedPerson = personRepository.save(person);

this.mockMvc.perform(get("/hello")
.param("id", savedPerson.getId().toString()))
.andDo(print())
.andExpect(content().string("hello keesun"));
}

}

spring MVC java

답변 6

1

백기선

코드를 보니까 포매터를 만들어 두셨네요. 그게 id로 들어오는 문자열을 Person으로 바이딩할 때 해당 포매터가 사용되서 그렇습니다. 그걸 빈으로 등록하지 마시고 테스트 실행하면 잘 될겁니다.

0

dsdsd

감사합니다.해결되었습니다.

0

dsdsd

https://github.com/0hun/spring-demo-web

소스 깃헙에 올렸습니다.

0

백기선

아.. name에 1이 들어갔네요? 프로젝트 전체 코드를 깃헙에 올려서 공유해 주세요. 

이상하네요. 이 코드를 보면 name에 keesun을 넣었는데 어떻게 1이 들어가있는건지... 

        Person person = new Person();
person.setName("keesun");
Person savedPerson = personRepository.save(person);

0

dsdsd

person의 name을 리턴한것을 확인하였습니다.

@RestController
public class SampleController {

@GetMapping("/hello")
public String hello(@RequestParam("id") Person person) {
return "hello " + person.getName();
}

}

0

백기선

컨트롤러에서 Persion의 id를 리턴하고 있는거 아닌가요? 수업 영상 다시 참고해 주시기 바랍니다.

7:58 예제 코드 찾는 법

0

256

2

PATCH의 Idempotent에 대한 질문

0

257

1

2:51초 질문입니다.

0

324

1

만약 어플리케이션컨텍스트에 필터를 설정하지 않으면 어떻게되나요?

0

361

0

web.xml에 위치한 애플리케이션 web.xml 내에서 파싱 오류 발생

0

515

0

Spring Boot 2.6 이상 버전에서의 DispatcherServlet

0

366

1

Event`Xxx`Controller 분리할때의 기준에 관한 질문입니다.

0

634

1

11분 57초 쯤, `returnValueHandlers` 들의 네이밍컨벤션 관련 질문입니다.

0

379

1

@EnableWebmvc 설정을 하면

0

415

1

springframework와의 차이점

0

283

1

@RequestBody의 바인딩에러를 잡는 방법

1

1655

2

안녕하세요 기선님 강의를 보다 서블릿에 궁금증이 생겨 질문 드립니다

1

237

1

HelloService의 값을 전달을 못 받습니다.

0

296

1

ServletContext와 WebApplicationContext의 관계 질문

1

740

1

하나의 서비스에, 두개의 리포지토리도 연결이 되나요?

0

364

1

view name 리턴에 대해

0

290

2

Formatter print 질문 드립니다.

0

232

1

에리 메시지가 한글입니다.

0

294

1

java 클래스파일로 설정되어 있던 것을 web.xml로 바꾸는 경우

0

338

1

@RequestParam

0

255

1

@Retention 질문

0

229

1

Event.builder() 관련 mac에서 lombok 문제 있으신 분들

0

198

1

스프링 부트 사용시 WebMvcConfigurerSupport 클래스

0

252

1

http://localhost:8080/hello 입력시 오류

0

492

4