seong
이력서 관리 사이트 (RestAPI) - 채용공고 작성하기 본문
- Controller 작성
채용 공고 작성은 회사가 로그인 한 이후 작성 해야하기 때문에 인증 필터를 거치는 부분을 추가해준다 "/s"
클라이언트에게 Dto로 값을 받고, 맵핑을 시켜서 insert를 수행한다.
맵핑 주소에서 CompanyId를 가져오지 않기 때문에 로그인시 저장되어 있는 companyId를 가져와 Dto에 넣어서 Service로 전달해준다.
- 채용 공고를 insert하기 위한 요청 Dto를 작성
- Build패턴을 사용해서 Entity로 수정
Dto로 받은 값들을 DB에 넣기전 Entity로 변경해서 DB에 insert한다.
채용 공고에 insert할때 총 3개의 테이블이 insert가 이루어지므로 각각 값들을 모두 엔티티화 시켜주는 메서드를 작성한다.
- 채용공고를 작성은 회사가 한다, 회사는 절대 null 일수 없다.
Controller에서 Session의 companyId값을 Dto에 넘겨주는데 이 값으로 Service에서 null이라면 아래와 같은 Exception처리로 에러메세지를 띄워주게 했다.
- Service에서 각각의 Dto들을 모두 Entity로 바꾸어 준 후 insert를 진행 한다.
그리고 만약 category, career 두개 모두 필수 입력 사항이다. 둘중 하나라도 null이라면 채용 공고 작성 에러 문구를 표시한다.
마지막으로 모두 입력된 데이터들을 응답해주기 위해 ResponseDto로 변경해 Return해준다.
JUNIT 작성
1. Given
- 채용 공고 insert시에 클라이언트에게 값을 받아오는 부분이다, 테스트 시엔 임의로 작성해서 전달해준다.
2. When
- Given데이터를 받아 서버와 통신을 수행 하게 된다.
테스트 서버는 MockMvc를 사용해 본 서버를 복제한 테스트 서버를 사용 한다.
insert시에 http의 body에 전달되기 때문에 body를 선언해준다.
진행시 contentType으로 Media Type을 알려준다.
3. Then
MockMvc에선 ResultAction으로 요청에 대한 응답의 검증을 수행할 수 있다.
andExpect로 요청에 대한 응답을 검증을 수행하고, ResultMatcher로 내가 기대하는 값을 작성한다.
만약 기댓값과 Result값이 다르다면 에러가 발생한다.
아래 코드에선 ResponseDto의 code가 1이라면 성공, 그릐고 isOk를 사용해 http 응답에 대한 상태 값이 200이면 성공이다.
'이력관리사이트' 카테고리의 다른 글
이력서 관리 사이트 (RestAPI) - 채용공고 상세보기 (0) | 2022.11.16 |
---|---|
이력서 관리 사이트 - 채용공고 리스트 보기 (0) | 2022.11.14 |
이력서 - 채용공고 상세보기 (0) | 2022.11.14 |
Git 진행 시 파일 대소문자 구분에러 해결 (0) | 2022.10.22 |
채용 공고 수정 기능 (0) | 2022.10.22 |