관리 메뉴

JIE0025

[Postman][1] depth가 0인 카테고리 추가 (컨트롤러 요청메세지 테스트) 본문

백엔드/테스트

[Postman][1] depth가 0인 카테고리 추가 (컨트롤러 요청메세지 테스트)

Kangjieun11 2022. 12. 17. 02:21
728x90

 

 

아직 API계층의 슬라이스테스트 // 컨트롤러에서 사용하는 Mockito를 잘 모르겠어서

Postman을 이용해  컨트롤러로 요청메세지를 보내는걸로 테스트를 하기로 했다. 

 

 

나중에 다시 Mockito로 테스트코드를 만들고 글을 작성해야지

 

 

설계 단계에서 이렇게 요청할것을 지정해놨기 떄문에 그대로 사용할거다.

//CREATE
POST http:localhost:8080/v1/categories

//READ
GET http:localhost:8080/v1/categories/1

//READ ALL
GET http:localhost:8080/v1/categories

//UPDATE
PATCH http:localhost:8080/v1/categories/1

//DELETE
DELETE http:localhost:8080/v1/categories/1

 

 


 

1️⃣ POST 요청 보내기 //CREATE 

 

depth가 0인 카테고리를 추가하는 테스트이다.

POST http:localhost:8080/v1/categories

//Body
{
    "name": "FLAG",
    "categoryDepth": 0
}

 

바로 에러가 나버렸다.

 

✅ 에러 기록과 해결

 javax.servlet.ServletException: No adapter for handler SpringBoot

 

https://jie0025.tistory.com/326

 

[error] javax.servlet.ServletException: No adapter for handler SpringBoot

✅ 에러 메세지 javax.servlet.ServletException: No adapter for handler SpringBoot No adapter for handler [com.FlagHome.backend.v1.category.controller.CategoryController@36a848f7]: The DispatcherServlet configuration needs to include a HandlerAdapter t

jie0025.tistory.com

 

 

🐜 디버깅

 

데이터 저장 전엔 전송한 데이터 name과 parent, children모두 null인걸 확인할 수 있었다.

 

 

 

데이터 저장 코드이후id가 1로 설정이 되는것을 체크했다.

 

 

근데 ///부모의 자식에 추가// 여기서 NullPointerException이 뜰 예정이라고 뜨길래 널체크하는 코드를 추가했다.

당연한 말이다. 맨위에서 NULL로 초기화를 해줬으니 ㅠㅠ

//부모의 자식에 추가
if(parentCategory != null) {
    parentCategory.getChildren().add(category);
}

 

 

✔️ 개선 이후 마지막으로 한번 더 테스트

 

 

데이터가 잘 들어간걸 확인했다.!

 

 

 

 


 

✔️ 이후에 할일

 

update : 카테고리 이름 수정하기

PATCH http://localhost:8080/1

------ body--------
{
	"name":"Activity"
}

 

 

create : depth가 1~3 인 카테고리 추가 (부모는 0번부터 내려가는걸로!)

{
	"id:0,
    "name":"Activity",
    "depth":0
    "children":[
		{
        	"id": 6,
        	"name": "Study",
        	"depth": 1,
        	"children": [
          		{
            		"id": 7,
            		"name": "알고리즘",
            		"depth": 2,
            		"children": [
              			{
                			"id": 8,
                			"name": "개념반",
                			"depth": 3,
                			"children": []
              			}
                    ]
                }
            ]
        }
   ]
}

 

 

마지막에  Mockito로 테스트코드를 만들고 글 작성하기