inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

[실습] Thymeleaf - 부트스트랩 템플릿

섹션3 컨트롤러테스트 오류

해결된 질문

158

Lerna

작성한 질문수 4

0

안녕하세요. 강의노트와 강의를 보면서 수정해 보았는데 resume에서만 test가 실패합니다. 제가 보기엔 resume가 JSON이 null이라서 그런것 같은데 어느 부분을 봐야할지 모르겠습니다. Datainitiallizer.kt를 봐도 잘 안보이네요.

 

아래는 에러 메세지와 코드입니다.

java.lang.NullPointerException: Cannot invoke "org.json.JSONArray.length()" because the return value of "org.json.JSONObject.optJSONArray(String)" is null

at com.dogu.portfolio.presentation.controller.PresentationApiControllerTest.testGetResume(PresentationApiControllerTest.kt:66)

at java.base/java.lang.reflect.Method.invoke(Method.java:569)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

 

@Test
@DisplayName("resume")
fun testGetResume() {
    //given
    val uri = "/api/v1/resume"

    //when
    val mvcResult = performGet(uri)
    val contentAsString = mvcResult.response.getContentAsString(StandardCharsets.UTF_8)
    val jsonObject = JSONObject(contentAsString)

    //then
    Assertions.assertThat(jsonObject.optJSONArray("experiences").length()).isPositive()
    Assertions.assertThat(jsonObject.optJSONArray("achievements").length()).isPositive()
    Assertions.assertThat(jsonObject.optJSONArray("skills").length()).isPositive()

}

kotlin mysql docker spring-boot jpa

답변 1

1

정보근

안녕하세요 정보근입니다:)

 

올려주신 정보로만 봤을 때 제일 가능성이 높은 건 ResumeDTO의 필드의 오타입니다.

 

각 필드가 experiences, achievements, skills로 정확히 선언되어 있는지 확인해주세요.

 

데이터 초기화는 확인하신 것 같고,

설령 데이터가 안 들어가있어도 응답값의 각 항목은 null이 아닌 빈 리스트가 들어오기 때문에

데이터베이스 관련 이슈는 아닌 것 같네요.

 

오타가 없다면 강의 프로젝트 깃허브 리포지토리 참고해주시거나,

 

실습하시는 프로젝트 리포지토리 링크 올려주시면 확인해보겠습니다.

 

감사합니다.

 

 

0

Lerna

https://github.com/yg-cho/portfolio-yg
입니다. 감사합니다!

1

정보근

ResumeDTO의 필드가 experience로 선언되어 있네요.

DTO의 필드를 experiences로 바꿔주시거나, 테스트 코드의 optJsonArray 인자를 experience로 바꿔주세요:)

Windows 환경에서 작업중

0

87

1

강의 자료 다운로드에 관해

0

163

2

도커 파일을 빌드 시킬때 오류가 발생하는데 무슨 에러인가요..

0

177

2

Admin 뷰 템플릿 유료화 여부 및 변경 사항 문의드립니다.

0

235

2

테스트 코드 작성 중 AssertionError 발생

0

276

4

메모리 크기

0

135

2

클래스 생성 강의 수강 중 오류 발생

0

127

1

리액트 연결

0

158

2

Docker Compose 배포 시 Jasypt 암호화된 속성 복호화 문제 해결 방법

1

293

2

도커로 크롬에서 프로그램 열기

0

304

2

DBeaver 연결부터 도커로프로젝트 빌드까지 안됩니다.

0

325

2

뷰 개발 파일 없음

0

152

2

fragment 분리 에러

0

127

1

admin 페이지에서 projectSkill 질문 있습니다

0

117

2

서버 배포 후 수정하려고 하면

0

295

2

docker-compose 파일 작성하기 질문 있습니다.

0

288

2

Admin 뷰개발-테이블 페이지와 관련한 질문드립니다.

0

187

1

Docker 데스크탑에서 push to Docker hub 를 클릭한 후 오류가 납니다...

0

386

3

ExperienceRepositoryTest 실행 오류

0

144

2

projectRepository assertion 오류 질문입니다.

0

189

1

테스트코드 실행중 오류와 경고에 관한 질문 입니다.

0

243

2

@PostCunstructer 를 사용하는 이유가 뭔가요?

0

286

2

환경변수 설정을 yml 아니라 properties로 해도 상관 없나요?

0

122

1

git 사용 오류 질문 드립니다

0

213

2