• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

스터디 테스트코드에 대해 여쭤보고 싶습니다.

20.11.16 13:34 작성 조회수 178

0

안녕하세요 강사님.

전체적으로 한 번 복습한 후 테스트코드를 작성하던 도중에 궁금한 점이 생겨서 질문을 남기게 되었습니다. 제가 스스로 작성해보고 막히는 부분이 있으면 선생님코드를 참고하는 식으로 작성하고 있는데 아래와 같은 테스트에서 저는 마지막에 

findByPath("wrong path"); 라고 작성했는데 강사님의 코드에서는 findByPath("test-path")로 되어있더라구요 

혹시 제가 어떤 부분을 잘못생각해서 다른건지 여쭤보고 싶습니다. 

요즘 유튜브 자바스터디도 잘 보고있습니다!

@Test
@WithAccount("keesun")
@DisplayName("스터디 개설 - 실패")
void createStudy_fail() throws Exception {
mockMvc.perform(post("/new-study")
.param("path", "wrong path")
.param("title", "study title")
.param("shortDescription", "short description of a study")
.param("fullDescription", "full description of a study")
.with(csrf()))
.andExpect(status().isOk())
.andExpect(view().name("study/form"))
.andExpect(model().hasErrors())
.andExpect(model().attributeExists("studyForm"))
.andExpect(model().attributeExists("account"));

Study study = studyRepository.findByPath("test-path");
assertNull(study);
}

답변 4

·

답변을 작성해보세요.

0

남기석님의 프로필

남기석

질문자

2020.11.16

감사합니다!

0

아 기억났습니다.

"wrong path"라는 path가 유효하지 않아서 응답으로 OK가 나오긴하지만 그 OK 응답은 사실상 폼페이지로 리다이렉트된 응답이라 OK인거고 모델에 error가 있는지 확인한 테스트입니다/

repository에 쿼리하는 부분은 말씀하신대로 wrong path로 조회를 해서 해당 스터디가 생기지 않았는지 확인해야 하는데 test-path를 쓴건 제 실수가 맞습니다.

잘 찾아주셨네요.

감사합니다.

0

남기석님의 프로필

남기석

질문자

2020.11.16

답변감사합니다!

지금은 강의 자료링크에 첨부해주신 소스코드의 테스트 부분을 참고하면서 "이런 부분은 이렇게 테스트하는구나" 라는 생각으로 공부를 하고있었습니다.  뒷 부분의 테스트코드는  앞 부분과 많이 겹치다보니 영상으론 생략된 것 같습니다.

위에 사진은 첨부해주신 소스코드의 StudyControllerTest의 createStudy_fail()  부분입니다. 

차근차근 생각해보면서 다시 작성해보도록 할게요!!

0

안녕하세요. 테스트 제목을 보면 스터디 생성이 실패하는 경우를 테스트 해야 하는것 같은데요. 테스트 본문은 왜 스터디 생성이 잘 된  이후에 test-path에 해당하는 스터디를 찾는 것인지 잘 이해가 되지 않네요. 제 강의 어디를 보고 하신거죠? 

스터디를 조회하면 안되고, 요청을 보냈을 때 status().isOk()아 아니라 badRequest()가 나오는지 확인해야 할 것 같습니다.

스터디 개설 실패 테스트인데 스터디를 조회하는 테스트를 작성한다는게 뭔가 잘 안맞는것 같은데요. 제 수업을 다시 차근 차근 따라해 보시고 정확히 어떤 수업 영상을 보고 계신건지 알려주세요.