Использование Mockito doAnswer в Котлине

что будет эквивалентом Kotlin для этого Java-кода?

doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Design design = new Design(); GetDesign.Listener callback = (GetDesign.Listener) invocation.getArguments()[0]; callback.onSuccess(design); return null; } }).when(someRepository).getDesign(any(GetDesign.Listener.class)); 

[UPDATE] После нескольких вариантов, я, наконец, сделал это, используя mockito-kotlin . Я думаю, что это самый удобный способ реализации doAnswer . Синтаксис остается почти таким же:

 doAnswer { callback = it.arguments[0] as AsyncCall.Listener callback.onSuccess("Hello!") null }.`when`(someRepository).execute(any()) 

Полный код и конфигурация build.gradle можно найти в этом репозитории

 doAnswer { val design = Design() val callback = it.arguments[0] as GetDesign.Listener callback.onSuccess(design) null // or you can type return@doAnswer null }.`when`(someRepository).getDesign(any(GetDesign.Listener::class.java))