Модульное тестирование сопрограмм Kotlin с использованием mockito

Я получаю следующее, когда пытаюсь издеваться и проверять действие, вызывающее функцию приостановки

Ошибка:

Аргументы разные! Требуется: userManager.getAccountInfo ((onCreate_callsGetAccountInformation $ 1) kotlinx.coroutines.experimental.CoroutineScope. () -> kotlin.Unit); -> at com.pharmacy.AccountActivityTests $ onCreate_callsGetAccountInformation $ 1.doResume (AccountActivityTests.kt: 117) Фактический вызов имеет разные аргументы: userManager.getAccountInfo (() kotlinx.coroutines.experimental.CoroutineScopelin) - >.Unit в com.pharmacy.AccountActivity $ loadAccountInfoAsync $ 1 $ 1.doResume (AccountActivity.kt: 199)

Код:

У меня есть мой модульный тестовый пример, украшенный runBlocking следующим образом:

    @Test 
    fun onCreate_callsGetAccountInformation() = runBlocking<Unit> 
    { whenever(userManager.getAccountInfo()).thenReturn(AccountInformation()) 
      subject = Robolectric.setupActivity(AccountActivity::class.java) 
      verify(userManager).getAccountInfo() 
    }

здесь -> usermanager.getAccountInfo () - функция приостановки.


person Faraaz    schedule 29.11.2017    source источник


Ответы (1)


Это была версия mockito, 2.10 и ниже не поддерживает функции приостановки. установка последней версии (2.12) исправила.

person Faraaz    schedule 29.11.2017