Mockito verifyNoMoreInteractions тест то проходит то нет, в зависимости от инициализации
Всем привет:) Подскажите куда копать
Есть простой тест:
@Test
public void deleteAccountByID_check() {
AccountModel model = new AccountModel();
when(accountRepository.findById(anyLong())).thenReturn(Optional.of(model));
doNothing().when(accountRepository).deleteById(anyLong());
String s = subj.deleteAccountByID(1);
// verify(accountRepository, times(1)).deleteById(1L);
verify(accountRepository, times(1)).findById(1L);
verifyNoMoreInteractions(accountRepository);
assertEquals("Deleting complete", s);
}
Инициализации моков и тестового класса:
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@ExtendWith(MockitoExtension.class)
class OperationServiceTest {
OperationService subj;
private AccountRepository accountRepository;
private TransactionRepository transactionRepository;
private AccountModelToAccountDTOConverter accountDTOConverter;
private TransactionModelToTransactionDTOConverter transactionDTOConverter;
@BeforeAll
public void init() {
accountRepository = Mockito.mock(AccountRepository.class);
transactionRepository = Mockito.mock(TransactionRepository.class);
accountDTOConverter = Mockito.mock(AccountModelToAccountDTOConverter.class);
transactionDTOConverter = Mockito.mock(TransactionModelToTransactionDTOConverter.class);
subj = new OperationService(accountRepository,
transactionRepository,
accountDTOConverter,
transactionDTOConverter
);
}
}
В данном случае verifyNoMoreInteractions выдает ошибку, что вызывается не верифицированный метод deleteById(anyLong()) и это правильно
Если инициализацию делаю так:
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@ExtendWith(MockitoExtension.class)
class OperationServiceTest {
@InjectMocks
OperationService subj;
@Mock
private AccountRepository accountRepository;
@Mock
private TransactionRepository transactionRepository;
@Mock
private AccountModelToAccountDTOConverter accountDTOConverter;
@Mock
private TransactionModelToTransactionDTOConverter transactionDTOConverter;
}
а код теста оставляю без изменений то тест спокойно проходит, почему так происходит, где что проверить?