@SpringBootTest
@ExtendWith(MockitoExtension.class)
class AccountServiceImplTest {
@Mock
private AccountRepository accountRepository;
@InjectMocks
private AccountServiceImpl accountService;
@Test
void findAccoount(){
given(accountRepository.findById(anyLong()))
.willReturn(Optional.of(Account.builder()
.accountStatus(AccountStatus.IN_USER)
.accountNumber("123456789")
.build()));
ArgumentCaptor<Long> captor = ArgumentCaptor.forClass(Long.class);
Account account = accountService.getAccount(1L);
verify(accountRepository, times(1))
.findById(captor.capture());
verify(accountRepository, times(0)).save(any());
assertEquals(1L, captor.getValue());
// assertEquals(2L, captor.getValue());
assertEquals("123456789", account.getAccountNumber());
}
}
Spring-jcl을 사용한 표준 Commons Logging 탐지: 이 메시지는 스프링의 JCL (Java Common Logging) 지원이 활성화되어 있고 작동 중임을 나타냅니다. commons-logging.jar 를 클래스패스에서 제거하여 잠재적인 충돌을 피하도록 권장합니다. 스프링은 자체적인 로깅 패 이드를 사용하며, 클래스패스에 Apache Commons Logging과 같은 다른 로깅 프레임워크가 함 께 있는 경우 충돌이 발생할 수 있습니다. 이를 해결하려면 클래스패스에 한 가지 로깅 프레임 워크만 존재하도록 하거나, 스프링이 필요한 경우 다른 로깅 프레임워크를 사용하도록 구성할 수 있습니다.
기본 구성 클래스를 감지할 수 없음: 이 메시지는 스프링이 테스트 클래스인 AccountServiceImplTest에 대한 기본 구성 클래스를 찾을 수 없다는 것을 나타냅니다. 스프링 부트에서는 테스트가 @SpringBootTest 주석을 사용하여 애플리케이션 컨텍스트를 구성하는 경우가 많습니다. 테스트에 추가적인 구성 클래스가 필요한 경우, @SpringBootTest의 classes 속성을 사용하거나 @Configuration으로 주석을 달아서 지정할 수 있습니다.
@SpringBootConfiguration byself.account.AccountApplication 발견: 이 메시지는 스프링 부트가 테스트 클래스인 AccountServiceImplTest에 대한 메인 애플리케이션 클래스 AccountApplication을 감지했다는 것을 확인합니다. 이 클래스는 일반적으로 스프링 부트 애플리케이션의 진입점으로 사용됩니다
나의 해당 사항은 2번 이었다.