1. 요구사항
- 통합 테스트에서 Admin, Seller, Member와 같은 권한이 연관된 페이지들을 테스트 해야한다.
- 기존의 @Test 어노테이션으로 해당 URI를 불러오면 인증이 되어있지 않기 때문에 로그인 페이지로 리다이렉트 되어 302 에러가 발생한다.
- 따라서 200 상태가 되어 테스트를 통과하기 위해선 해당 페이지에 인증절차를 거친뒤 진행되어야 한다.
2. 해결사항
@WithMockUser 어노테이션으로 해당 계정 정보 및 권한을 직접 입력하여 인증시키도록 한다.
@Slf4j
@ExtendWith(SpringExtension.class)
@SpringBootTest
@AutoConfigureMockMvc
public class AdminControllerTests { // 관리자 컨트롤러 테스트
@Autowired
private MockMvc mockMvc;
@Test
// 인증이 된 상태로 테스트를 진행함
@WithMockUser(username = "abcd1234", password = "$2a$10$TneVbdjmbOA0la7BtZKxAOFtZWHH3L9NCYZL4l4Wm9FdmVfA/Tk4y", authorities = "ADMIN")
public void getMappingTest() throws Exception {
// 관리자 마이페이지
mockMvc.perform(MockMvcRequestBuilders.get("/admin/mypage")).andExpect(MockMvcResultMatchers.status().isOk());
}
}
3. 출처
'Self-Study > 계란으로 바위치기' 카테고리의 다른 글
[Electron] Unable to install dev tools 문제 (0) | 2022.07.04 |
---|---|
[Spring] AuthenticationPrincipal로 인증된 페이지의 통합테스트 진행 (0) | 2021.04.20 |
[Spring] 상품 찜하기 기능 (0) | 2021.04.16 |
[Spring] 해당 댓글을 작성한 회원만 삭제하는 기능 (0) | 2021.04.16 |
1:N 관계의 사진이 첨부된 게시글 삭제하기 (0) | 2021.04.01 |
최근댓글