@InjectMocks UserService userService;
@Mock UserRepository userRepository;
@Mock PasswordEncoder passwordEncoder;
@Test
@DisplayName("์ค๋ณต๋ ์์ด๋ ์
๋ ฅ ์, ํ์ ๊ฐ์
์คํจ")
void givenIsExistedUsername_whenSignup_thenFail() {
// Given
String username = "tester";
String password = "123456789";
SignupRequestDto requestDto = new SignupRequestDto();
requestDto.setUsername(username);
requestDto.setPassword(password);
User user = createUser(username, password);
// When
when(userRepository.findByUsername(requestDto.getUsername())).thenReturn(Optional.ofNullable(user));
ResponseEntity<?> answer = userService.signup(requestDto);
// Then
assertEquals(answer.getStatusCode(), HttpStatus.BAD_REQUEST);
assertEquals(answer.getBody().equals("์ค๋ณต๋ username ์
๋๋ค."), true);
}
@Autowired UserService userService;
@Autowired UserRepository userRepository;
@Autowired PasswordEncoder passwordEncoder;
@Test
@DisplayName("์ค๋ณต๋ ์์ด๋ ์
๋ ฅ ์, ํ์ ๊ฐ์
์คํจ")
void givenIsExistedUsername_whenSignup_thenFail() {
// Given
String username = "tester";
String password = "123456789";
SignupRequestDto requestDto = new SignupRequestDto();
requestDto.setUsername(username);
requestDto.setPassword(password);
// When
userService.signup(requestDto);
// Then
assertEquals(userService.signup(requestDto).getStatusCode(), HttpStatus.BAD_REQUEST);
}
์ฒ์์ ์์ ์ฝ๋๋ก @Mock
์ ์ด์ฉํ์ฌ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ @Mock
์ ๊ป๋ฐ๊ธฐ๋ง ๋ง๋ค์ด ๋ฃ์ด์ฃผ๋ ๊ฑฐ๋ผ, repository์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง ์๋๋ค๋ ๊ฒ
๊ทธ๋ฐ๋ฐ ๋ด ์๋น์ค ๋ก์ง์์๋ userRepository.findByUsername(username)
ํธ์ถ์ด ์์๋ค.
์๋ ์ ํ
์คํธ์ ์๋๋ ์ ๋ถ๋ถ์์ User๊ฐ ๋์ ํ์๊ฐ์
์ ์คํจํ์ฌ ResponseEntity<UserResponse> ๋ฅผ BAD_REQUST ์ํ๋ก ๋ฆฌํด๋ฐ์์ผํ๋๋ฐ, DB์๋ ๊ฐ์ด ์ ์ฅ๋์ด ์์ง ์๋ค๋ณด๋, ์ ๋ถ๋ถ์ ๊ฑธ๋ฆฌ์ง ์์ ํญ์ 200 OK๊ฐ ๋ด๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ชป์ฐพ๊ณ ๊ทธ๋ฅ ํฌ๊ธฐํ๊ณ @Autowired
๋ฅผ ์ด์ฉํ์ฌ ์ง์ง repository๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋๋ฐ!!!!!
์ด๋ฌ๊ณ ์ถ์ง ์์ ํ์๊ณผ ๋ง์ ๋ถ๋ค์ด ๋์์ ์ฃผ์
์ ํด๊ฒฐ!
๊ทธ๋ฆฌ๊ณ ํํฐ๋๊ป์ repository๋ฅผ ์ฌ์ฉํ๋๊ฒ ์๋๋ค ๋ผ๊ณ ํ์
จ๋ค๋ ๋ง์ ๋ค์๋๋ฐ, ์ฒ์์ ์ดํด๊ฐ ๊ฐ์ง ์๋ค๊ฐ ์ด์ ์ผ ๋๊ฐ ์๊ฒ๊ฐ๋ค.
ํฌ์ธํธ๋ ์ด ํ
์คํธ์ผ์ด์ค์ ๋ชฉ์ ์ ์คํจ๊ฐ ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ userRepository.findByUsername(username)
์์ ํ์๊ฐ์
์์ฒญ dto์ ๋๊ฐ์ username์ ๊ฐ์ง User์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒ
๊ทธ๋ ๊ฒ ํ์ฌ ์ค๊ณ๋๋ก ์๋น์ค ๋ก์ง์ด ์ ๋์๊ฐ๋ค๋ ์๋๋ฆฌ์ค๊ฐ ์์ฑ!!~~! ๋ฌผ ํ์ผ๋ ๋ด์ผ์ ์ญ์ญ ์ง๋ ๋๊ฐ๋ค!๐
'TIL๐ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
23.12.05 TIL (0) | 2023.12.05 |
---|---|
23.12.04 TIL (0) | 2023.12.04 |
23.11.29 TIL (0) | 2023.11.29 |
23.11.23 TIL (1) | 2023.11.23 |
23.11.22 TIL (1) | 2023.11.22 |