Использование 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)) 
Intereting Posts
Соответствие регулярных выражений в Котлине не родной брат в том же RelativeLayout? Почему в Коллекции Котлин нет? Запуск тестов из Android Studio IDE не восстанавливает чистый библиотечный модуль Java Удалить слушателя Firebase не работает От Явы до Котлина Kotlin – эквивалентность SomeClass.class для объектов? gradle не удается скомпилировать классы java с использованием класса kotlin Использование типа общего класса в Котлине OnErrorNotImplementedException с использованием RxJava2 и Retrofit2 Mosby MVI Связанная ссылка на вызов не работает с реактором Подписаться Java не разрешает окончательные методы по умолчанию .. но делает Котлин? Почему Kotlin не может переопределить метод List <*> оператора? Предупреждение: предупреждение: поддерживаемая исходная версия 'RELEASE_7' из обработчика аннотаций 'android.arch.lifecycle.LifecycleProcessor' меньше, чем -source '1.8' Kotlin build не может получить классы, созданные SquidDatabase