Здравствуйте, у меня есть следующая проблема.Я пытаюсь смоделировать вызов внедренного исполнителя для немедленного выполнения данного Callable.Позже в тесте приводятся аргументы методов, вызываемых внутри Callable, и утверждаются аргументы.Пример см. Ниже.
Maven 3, jdk 10-slim, mockk 1.9
//this task should be executed by executor
private val taskCaptor = slot<Callable<Boolean>>()
private val asyncTaskExecutor: LazyTraceThreadPoolTaskExecutor = mockk<LazyTraceThreadPoolTaskExecutor>().apply {
//this was my 1st try, but resutt was java.lang.InstantiationError: java.util.concurrent.Callable
//every { submit(capture(taskCaptor)) } returns CompletableFuture.completedFuture(taskCaptor.captured.call())
//every { submit(any()) } returns CompletableFuture.completedFuture(true)
every { submit(ofType(Callable::class)) } returns FutureTask<Boolean>(Callable { true })
}
позже я изменил интерфейс Callable на реализацию, которую я создал в тестируемом классе, и получилдругое исключение.С тем же кодом, что и выше, исключения были
java.lang.InstantiationError: java.util.concurrent.Future
, который является типом возврата метода submit
.
Мой подход к насмешкам неверен?