org.mockito.exceptions.base.MockitoException:

황상익·2024년 4월 8일
 @Test
    @DisplayName("계좌 삭제")
    void deleteAccount() {
        AccountUser user = AccountUser.builder()
                .name("Park")
                .build();
        user.setId(1L);

        given(accountUserRepository.findById(anyLong()))
                .willReturn(Optional.of(user));

        given(accountRepository.findByAccountNumber(anyString()))
                .willReturn(Optional.of(Account.builder()
                        .accountUser(user)
                        .accountNumber("123456789")
                        .balance(0L)
                        .build()));
        
        ArgumentCaptor<Account> captor = ArgumentCaptor.forClass(Account.class);

        //when
        AccountDto accountDto = accountService.deleteAccount(1L, "123456789");

        //then
        verify(accountRepository, times(1)).save(any());
        assertEquals(1L, accountDto.getId());
        assertEquals("123456789", captor.getValue().getAccountNumber());
        assertEquals(AccountStatus.UNREGISTERED, captor.getValue().getAccountStatus());
    

파라미터를 캡처하는데 사용이 되어야 하는데 verify 부분에 파라미터 캡처 하고 있지 않아서 발생한 문제!

ArgumentCaptor<Account> captor = ArgumentCaptor.forClass(Account.class);
    verify(accountRepository, times(1)).save(captor.capture());

변경!!!

profile
개발자를 향해 가는 중입니다~! 항상 겸손

0개의 댓글