평문 패스워드를 암호화 해주기 위해서 PasswordEncoder의 encoder()를 사용한다.
passwordEncoder.encode("passowrd");
테스트 코드 작성 시 평문 패스워드와 암호화된 패스워드를 비교하기 위해 matches() 메서드를 사용한다.
userService에서 encode()를 구현해주었고 저장되어 있는 암호화된 패스워드랑
테스트를 위해 만들어준 newUser의 평문 패스워드를 비교해주기 위해 matches()를 사용했다.
@Test
public void givenValidId_whenSignupPost_then200() {
// given
UserDto newUser = new UserDto();
newUser.setUsername("user03");
newUser.setPassword("user04pwd");
newUser.setShopOwner(true);
// when
Long saveId = userService.create(newUser).getId();
// then
UserDto found = userService.read(saveId);
assertThat(found.getUsername()).isEqualTo(newUser.getUsername());
assertThat(passwordEncoder.matches("user04pwd", found.getPassword())).isTrue();
assertThat(found.isShopOwner()).isEqualTo(true);
}
'Spring boot' 카테고리의 다른 글
[Spring Boot] JPA 조회 작업 findById(), getOne()의 차이 (0) | 2022.03.29 |
---|---|
[Spring Boot] JPA Caching 적용하기 (0) | 2022.03.21 |
[Spring Study Group] Spring MVC 요청 경로/클래스 레벨/경로 패턴 / Http 메서드 매핑설정 (0) | 2021.11.07 |
[Spring Study Group] Spring Legacy Project 생성하기 - IntelliJ IDEA (2) | 2021.11.07 |
@Controller, @RestController 어노테이션 차이 (2) | 2021.10.15 |