본문 바로가기

프로젝트/멋사 개인 프로젝트 (mutsa-SNS)

(26)
[17] mutsa-SNS-2 1일차 - (2) 댓글 기능 test code 댓글 기능 관련 test code를 작성해 보았다. controller test code를 작성해 보았으며, 아래의 경우에 대하여 진행하였다. 댓글 등록 댓글 작성 성공 댓글 작성 실패(1) - 로그인 하지 않은 경우 댓글 작성 실패(2) - 게시물이 존재하지 않는 경우 댓글 수정 댓글 수정 성공 댓글 수정 실패(1) : 인증 실패 댓글 수정 실패(2) : 댓글 불일치 댓글 수정 실패(3) : 작성자 불일치 댓글 수정 실패(4) : 데이터베이스 에러 댓글 삭제 댓글 삭제 성공 댓글 삭제 실패(1) : 인증 실패 댓글 삭제 실패(2) : 댓글 불일치 댓글 삭제 실패(3) : 작성자 불일치 댓글 삭제 실패(4) : 데이터베이스 에러 PostControllerTest @WebMvcTest(PostControl..
[16] mutsa-SNS-2 1일차 - (1) 댓글 기능 구현 1주차 2주차 미션이 끝난 후 2일 휴강과 주말을 푹 쉬었다... 새로운 마음으로 새 기능을 구현해 보았다. 오늘 구현한 기능은 댓글 기능이다. 댓글 목록은 모든 유저가 조회 가능 댓글 작성은 로그인 한 유저만 가능 댓글 수정/삭제는 댓글 작성 유저만 가능 (ADMIN유저는 모든 댓글에 대하여 수정/삭제 가능) 1. Configuration SwaggerConfig @Configuration @RequiredArgsConstructor public class SwaggerConfig { private final TypeResolver typeResolver; @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) //swagger ..
[15] 3주차/4주차 미션 개요 1. 기한 2023.01.03 ~ 2023.01.10 2. 필수 과제 댓글 기능 구현 좋아요 기능 구현 마이피드 기능 구현 알림 기능 구현 Swagger에 ApiOperation을 사용하여 Controller 설명 보이게 할 것
[14] mutsa-SNS 7일차 - 코드 리펙토링 팀 프로젝트의 조원분들의 피어리뷰를 토대로 코드 리펙토링을 해 보았다. @ApiIgnore annotation 추가 (Swagger 관련) Swagger Authorize button 추가 UserDto.build()의 중복 사용 개선 PostServiceTest code 개선 1. @Apilgnore @RestController @RequestMapping("/api/v1/posts") @RequiredArgsConstructor public class PostController { private final PostService postService; @PostMapping public Response createPost(@RequestBody PostCreateRequest req, @ApiIgnor..
[13] mutsa-SNS 6일차 - (2) Admin 권한 부여 기능 추가 생각보다 test code의 작성이 빨리 끝나 도전과제인 admin 권한 부여에 도전해 보았다. ADMIN 회원으로 등급업하는 기능 초기 ADMIN 회원은 하나가 존재하고 ADMIN 회원은 일반회원의 권한을 ADMIN으로 승격시킬 수 있다. ADMIN 회원이 로그인 시 자신이 쓴 글이 아닌 글에 대해 수정, 삭제 가능 밑의 두가지 기능은 이미 진행하였기 때문에, USER 회원을 ADMIN으로 등급업 하는 기능을 추가하였다. 등급업이 가능한 유저는 ADMIN 유저이다. 1. Configuration SecurityConfig @EnableWebSecurity @Configuration @RequiredArgsConstructor //WebSecurityConfigurerAdapter 는 이후 SpringB..
[12] mutsa-SNS 6일차 - (1) Post 삭제, 수정 Test Code 추가 post 삭제와 수정에 대한 테스트 코드를 추가하였다. 두 method의 로직이 비슷하여 테스트 코드가 거의 비슷하여 비교적 편했다... 1. PostControllerTest @WebMvcTest(PostController.class) class PostControllerTest { @Autowired MockMvc mockMvc; @MockBean PostService postService; @Autowired ObjectMapper objectMapper; ... @Test @DisplayName("post 수정 성공") @WithMockUser void post_modify_success() throws Exception { PostModifyRequest postModifyRequest = Po..
[11] mutsa-SNS 5일차 - (2) Post 삭제, 수정 기능 추가 Post의 삭제와 수정 기능을 추가하였다. 해당 기능은 아래의 조건을 충족했을 때만 가능하다. JWT token을 갖고 있는 자 (로그인 한 유저) UserRole = ADMIN인 경우 모든 글에 대하여 삭제와 수정 가능 UserRole = USER인 경우 자신의 글에 대하여 삭제와 수정 가능 1. Configuration SecurityConfig @EnableWebSecurity @Configuration @RequiredArgsConstructor //WebSecurityConfigurerAdapter 는 이후 SpringBoot에서 잘 안쓰게 됨 public class SecurityConfig { ... @Bean public SecurityFilterChain securityFilterChai..
[10] mutsa-SNS 5일차 - (1) Post 조회 기능 TestCode 추가 post 조회 기능에 대한 testCode를 추가하였다. postController와 postService에 대하여 testCode를 추가하였다. 1. PostControllerTest @WebMvcTest(PostController.class) class PostControllerTest { @Autowired MockMvc mockMvc; @MockBean PostService postService; @Autowired ObjectMapper objectMapper; //포스트 상세 테스트 @Test @DisplayName("1번글 조회 성공") @WithMockUser void post_detail_success() throws Exception { PostDto postDto = PostDto.b..