Я пытаюсь проверить исключение в блоке try catch с помощью метода Thread.sleep в блоке try с помощью Mocito. Я использовал приведенный ниже метод проверки на мокито, и он прошел, как и ожидалось, но никогда не улучшал мое тестовое покрытие. Отчет о покрытии показывает, что блок catch внутри метода waitForSyn c не достигнут. Может кто-нибудь, пожалуйста, помогите, что я здесь скучаю?
public class CreateAccount{
@Autowired
private AccountService accountService,
@Autowired
private BuildAccountResponse buildAccountResponse
@Value("${waitForSync:0}")
private Integer accountSyncWaitTimeMs;
public AccountResponse createMyAccount(AccountRequest request, String accountId) {
accountService.checkIfAccountExists(accountId);
Optional<AccountResponse> myResponse= buildAccountResponse.create(request, accountId);
waitForSync(accountId);
return myResponse.get();
}
}
waitForSyn c метод
private void waitForSync(String accountId) {
try{
if (accountSyncWaitTimeMs>0){
Thread.sleep(accountSyncWaitTimeMs)
}
catch { (Exception e)
Logger.warn("Failed to apply wait account sync");
}
Мой метод тестирования mockito
@InjectMocks
@Spy
private CreateAccount createAccount;
private static final accountWaitTime = 1;
ReflectionTestUtils.setField(createAccount, "accountSyncWaitTimeMs" , accountWaitTime);
private AccountRequest request;
private static final String accountId = "AccountId";
@Test (expected = Exception.class)
public void createAccount_waiSync_Exception () {
doThrow(new InterruptedException()).when(Thread.class);
createAcccount.createMyAccount(request, accountId);
}
Тесты пройдены как и ожидалось, но строки ниже никогда не освещаются, так что в основном я добавил тест на пустоту, так как его улучшить?
catch { (Exception e)
Logger.warn("Failed to apply wait account sync");