테스트 코드를 작성하고 있다.
@Import(value = [QueryDslSupport::class])
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
@ExtendWith(MockKExtension::class)
class PostControllerTest @Autowired constructor(
private val mockMvc : MockMvc,
private val jwtPlugin: JwtPlugin
) : DescribeSpec({
afterContainer {
clearAllMocks()
}
val postService = mockk<PostService>()
// describe("searchByNickname은"){
// context("nickname을 정확하게 입력했을 때"){
// it("pagenation이 정상적으로 적용되어야 한다.") {
// val nickname = "admin"
// val pageable = PageRequest.of(0,5, Sort.by("created_at"))
//
// every { postService.searchByNickname(pageable, nickname) } returns mockk()
//
// mockMvc.perform(
// MockMvcRequestBuilders.get("/api/v1/posts/nickname")
// .param("nickname", nickname))
// .andExpect(MockMvcResultMatchers.status().isOk)
//
// verify { postService.searchByNickname(pageable, nickname) }
//
// }
// }
// }
//
//
// describe("searchByNickname에서") {
// context("Nickname을 찾지 못한 경우") {
// it("UserNotFoundException이 발생해야 한다.") {
// val nickname = "nonexistent"
// val pageable = PageRequest.of(0, 5, Sort.by("created_at"))
// val userId = 1L
//
// every { postService.searchByNickname(pageable, nickname) } throws UserNotFoundException(userId)
//
// assertThrows<UserNotFoundException> {
// mockMvc.perform(MockMvcRequestBuilders.get("/api/v1/posts/nickname")
// .param("nickname", nickname))
// }
//
// verify { postService.searchByNickname(pageable, nickname) }
}
}
}
})
Controller에 대해 테스트를 진행해 보고 싶은데,
어떻게 테스트 코드를 작성해야 되는지 전혀 감이 안온다.
테스트가 완료될 때 까지 계속 변경된 내용을 해당 포스트에 수정할 예정이다.