Spring Boot 게시판 만들기 5 - 모든 Post 가져오기 2021-02-12 2024-02-27 5. 모든 포스트 가져오기모든 포스트 가져오기 요청 처리하기BoardController.java @Controller@RequiredArgsConstructorpublic class BoardController { private final PostService postService; @GetMapping("/") public String board(Model model){ List<Post> posts = postService.getAllPost(); model.addAttribute("PostList", posts); return "board"; }} 모든 Post 가져오기 요청에 대한 테스트 코드 작성BoardControllerTest.java @WebMvcTestclass BoardControllerTest { @Autowired private MockMvc mockMvc; @MockBean private PostService postService; @Test @DisplayName("모든 Post를 가져온다.") public void board() throws Exception { List<Post> posts = new ArrayList<>(); posts.add(Post.builder() .id(1L) .title("test") .name("tester") .content("test") .writeTime(LocalDateTime.now()) .build() ); given(postService.getAllPost()).willReturn(posts); ResultActions resultActions = mockMvc.perform(get("/")); resultActions .andExpect(status().isOk()) .andDo(print()); verify(postService).getAllPost(); }} 데이터 조회@Service@RequiredArgsConstructorpublic class PostService { private final PostRepository postRepository; public Post addPost(Post newPost) { return postRepository.save(newPost); } public List<Post> getAllPost() { return postRepository.findAll(); }} 데이터 조회에 대한 테스트 코드 작성@Test@DisplayName("모든 포스트를 가져온다.")public void getAllPosts() { List<Post> mockPosts = new ArrayList<>(); mockPosts.add(Post.builder() .id(1L) .title("test") .name("tester") .content("test") .writeTime(LocalDateTime.now()) .build() ); given(postRepository.findAll()).willReturn(mockPosts); List<Post> posts = postService.getAllPosts(); verify(postRepository).findAll(); Post post = posts.get(0); assertThat(post.getId()).isEqualTo(mockPosts.get(0).getId()); assertThat(post.getTitle()).isEqualTo(mockPosts.get(0).getTitle()); assertThat(post.getName()).isEqualTo(mockPosts.get(0).getName()); assertThat(post.getContent()).isEqualTo(mockPosts.get(0).getContent()); assertThat(post.getWriteTime()).isEqualTo(mockPosts.get(0).getWriteTime());}