728x90
테스트 코드란 결국 가상의 상황을 제시해 주는 것.
사실 없어도 되고 아무런 문자열을 넣어줘도 무방하지만
이왕 JWT를 만들었는데 토큰을 넣어주는 상황을 가정하면 더욱 몰입할 수 있지 않을까.
(사실 이런저런 문제 해결하다가 토큰이라도 만들어볼까 하다가 만들게 되었다.)
...
class RecommendRestControllerTest {
...
String jwtToken;
@BeforeEach
void getToken() {
Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
jwtToken = Jwts.builder()
.setSubject("user")
.setIssuer("issuer")
.setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60))
.signWith(key, SignatureAlgorithm.HS256)
.compact();
}
@Test
@DisplayName("추천글 작성")
void success_post_recommend() throws Exception {
...
mockMvc.perform(multipart(url)
.file(file)
.file(jsonPart)
.with(csrf())
.with(httpBasic("username", "password"))
.header(HttpHeaders.AUTHORIZATION, jwtToken))
.andExpect(status().isOk());
}
}
전역 변수로 미리 jwtToken을 선언한 다음
@BeforeEach를 사용해서 테스트 코드를 돌리기 전에 미리 하나의 메서드를 실행시킨다.
해당 메서드에서 Jwts.builder()를 사용하여 토큰을 만든 다음 전역변수인 jwtToken에 넣어주었다.
그 후 실제 테스트에서 jwtToken을 대입하여 상황을 만들어주었다.
반응형
'Server > Spring&Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring Banner 변경해보기 (Spring boot run!) (2) | 2023.02.01 |
---|---|
[Junit] MultipartFile과 DTO가 있는 컨트롤러 테스트 (1) | 2023.02.01 |
[Querydsl] Spring Boot 3.0 이상 Querydsl 세팅 gradle (2) | 2023.01.30 |
[Spring] TomcatServletWebServerFactory Port 설정 (0) | 2023.01.28 |
[Spring Boot] AWS S3에 파일 업로드 (0) | 2023.01.26 |