- 23.12.01) TIL2023년 12월 01일 21시 00분 03초에 업로드 된 글입니다.작성자: oneseel
스프링 심화과제로 테스트 코드를 작성하게 되었다.
테스트 코드의 효용성은 알겠지만, 강의를 들어도 아직까지는 너무 복잡하게 보인다.
일단 오늘은 그나마 쉬운 엔터티와 dto쪽 테스트 코드를 만들었다.
기존에 만들었던 todo 프로젝트를 이용해서 진행했는데, 팀 프로젝트하면서 배운 걸 기반으로 코드를 전체적으로 수정한 뒤에 테스트 코드를 만들었다.
1. TodoEntity Test
@ExtendWith(MockitoExtension.class) class TodoTest { @Test @DisplayName("Todo 엔터티 생성 - 성공") void createTodoEntity() { // Given TodoRequestDto todoRequestDto = new TodoRequestDto(); todoRequestDto.setTitle("할일카드 제목"); todoRequestDto.setContents("할일카드 내용"); User user = new User(); user.setUsername("작성자"); // When Todo todo = new Todo(todoRequestDto, user); todo.setId(1L); // Then assertNotNull(todo); assertNotNull(todo.getId()); assertEquals(todoRequestDto.getTitle(), todo.getTitle()); assertEquals(todoRequestDto.getContents(), todo.getContents()); assertEquals(user.getUsername(), todo.getAuthor()); assertFalse(todo.isCompleted()); assertEquals(user, todo.getUser()); } @Test @DisplayName("Todo 엔터티 update - 성공") void updateTodoEntity() { // Given TodoRequestDto todoRequestDto = new TodoRequestDto(); todoRequestDto.setTitle("기존 제목"); todoRequestDto.setContents("기존 내용"); User user = new User(); user.setUsername("작성자"); Todo todo = new Todo(todoRequestDto, user); TodoUpdateRequestDto updateRequestDto = new TodoUpdateRequestDto(); updateRequestDto.setTitle("새로운 제목"); updateRequestDto.setContents("새로운 내용"); // When todo.update(updateRequestDto); // Then assertEquals(updateRequestDto.getTitle(), todo.getTitle()); assertEquals(updateRequestDto.getContents(), todo.getContents()); } @Test @DisplayName("Todo 엔터티 completed - 성공") void completeTodoEntity() { // Given TodoRequestDto todoRequestDto = new TodoRequestDto(); todoRequestDto.setTitle("할일카드 제목"); todoRequestDto.setContents("할일카드 내용"); User user = new User(); user.setUsername("작성자"); Todo todo = new Todo(todoRequestDto, user); TodoCompletedRequestDto completedRequestDto = new TodoCompletedRequestDto(); completedRequestDto.setCompleted(true); // When todo.completed(completedRequestDto); // Then assertTrue(todo.isCompleted()); } }2. TodoRequest Test
class TodoRequestDtoTest { @Test void todoRequestDtoTest() { TodoRequestDto requestDto = new TodoRequestDto(); requestDto.setTitle("title"); requestDto.setContents("content"); requestDto.setAuthor("author"); requestDto.setCompleted(false); assertNotNull(requestDto.getTitle()); assertNotNull(requestDto.getContents()); assertNotNull(requestDto.getAuthor()); assertEquals("title", requestDto.getTitle()); assertEquals("content", requestDto.getContents()); assertEquals("author", requestDto.getAuthor()); assertFalse(requestDto.isCompleted()); } @Test void todoUpdateRequestDtoTest() { TodoUpdateRequestDto requestDto = new TodoUpdateRequestDto(); requestDto.setTitle("title update"); requestDto.setContents("content update"); assertNotNull(requestDto.getTitle()); assertNotNull(requestDto.getContents()); assertEquals("title update", requestDto.getTitle()); assertEquals("content update", requestDto.getContents()); } @Test void todoCompletedRequestDtoTest() { TodoCompletedRequestDto requestDto = new TodoCompletedRequestDto(); requestDto.setCompleted(true); assertTrue(requestDto.isCompleted()); } }3. TodoResponse Test
class TodoResponseDtoTest { @Test void todoResponseDtoTest() { // Given Todo todo = new Todo(); todo.setId(1L); todo.setTitle("Title"); todo.setAuthor("Author"); todo.setContents("Contents"); todo.setCreatedAt(LocalDateTime.now()); todo.setCompleted(true); // When TodoResponseDto responseDto = new TodoResponseDto(todo); // Then assertNotNull(responseDto); assertEquals(1L, responseDto.getId()); assertEquals("Title", responseDto.getTitle()); assertEquals("Author", responseDto.getAuthor()); assertEquals("Contents", responseDto.getContents()); assertNotNull(responseDto.getCreatedAt()); assertTrue(responseDto.isCompleted()); } }'TIL' 카테고리의 다른 글
23.12.05) TIL (0) 2023.12.05 23.12.04) TIL (0) 2023.12.04 23.11.28) TIL (0) 2023.11.28 23.11.22) TIL - 뉴스피드 프로젝트 1일차 (0) 2023.11.22 23.11.17) TIL - 숙련 주차 7일차 (0) 2023.11.17 댓글