Mockito.doThrow(new JobParametersInvalidException("Invalid")).when(mockJobLauncher).run(mockjob, mockjobParameters);
Этот doThrow не вызывается, так как параметры не будут совпадать.
В коде параметры задаются с помощью:
JobParameters jobParameters = new JobParametersBuilder()
.addLong("time", System.currentTimeMillis())
.toJobParameters();
В модульном тестемакет соответствия задается с помощью:
mockjobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis()).toJobParameters();
Проблема в том, что часы с точностью до миллисекунды почти наверняка остановились бы между моментом установки теста и моментом выполнения тестируемого кода.Это означает, что эти параметры не будут равны, и, таким образом, исключение не выдается.
Измените настройку макета, чтобы ожидать любые параметры JobParameters, например что-то вроде:
Mockito.doThrow(new JobParametersInvalidException("Invalid")).when(mockJobLauncher).run(eq(mockjob), any(JobParameters.class));