강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của whdudgns26545253
whdudgns26545253

câu hỏi đã được viết

MVC mùa xuân

Bộ chuyển đổi Lớp Tên miền

질문있습니다.

Viết

·

676

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"));
}

}
springMVCjava

Câu trả lời 6

1

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

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

0

dsdsd님의 프로필 이미지
dsdsd
Người đặt câu hỏi

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

0

dsdsd님의 프로필 이미지
dsdsd
Người đặt câu hỏi

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

소스 깃헙에 올렸습니다.

0

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

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

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

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

0

dsdsd님의 프로필 이미지
dsdsd
Người đặt câu hỏi

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

@RestController
public class SampleController {

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

}

0

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

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

Hình ảnh hồ sơ của whdudgns26545253
whdudgns26545253

câu hỏi đã được viết

Đặt câu hỏi