BankSystem, 2022년 1월 5일

yshjft·2022년 1월 5일
0

Bank System

목록 보기
5/14

stubbing 할 때 함수의 parameter가 객체인 경우

이 경우 계속해서 argument mismatch가 떠서 test가 진행되지 않았다. 결국 이 문제를 해결하기 위해 stubbing 시 any()를 파라미터로 전달하였다. 사실 이게 맞는 해결 방법인지는 모르겠다. 후에 다른 방법을 찾으면 다시 기록해야겠다.

any()

import static org.mockito.ArgumentMatchers.any

.
.

when(accountRepository.save(any())).thenReturn(account);

쉽게 어떤 값은 주던간에 동작할 수 있도록 하는 것이다.

예외 처리 테스트하기

// 예외 발생 테스트 코드
    @Test
    void 회원가입_실패_이메일_중복() {
        try {
            when(userRepository.isExist(TestUser.EMAIL)).thenThrow(new EmailAlreadyInUseException());

            userService.join(userJoinRequestDto);
        }catch (EmailAlreadyInUseException e) {
            verify(userRepository).isExist(TestUser.EMAIL);
            verify(userRepository, never()).save(userJoinRequestDto);
        }
    }

thenThrow()를 통해 예외를 발생시키고 필요한 메서드는 잘 동작하고 필요 없는 메서드는 잘 동작하지 않는지 확인할 수 있었다.

profile
꾸준히 나아가자 🐢

0개의 댓글