Mockk: всегда вызывает реальный метод - PullRequest
0 голосов
/ 15 апреля 2020

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

Ниже приведены примеры того, как я это сделал:

файл MakeCall.kt и ни один класс не объявлен с kotlin:

@File:JvmName("MakeCall")
package com.foo

fun <T> makeCall(call : () -> T) : Single<T> {
    return anyFunction(call)
}

ViewModelFile .kt

class ViewModelFile(val repository: Repository) : ViewModel() {
    fun loadData() {
        makeCall { repository.loadData() }.flatMap...
    }
}

И в моем тестовом классе я пробовал это:

mockkStatic("com.foo.MakeCall")
val repository: Repository = mockk()
val viewModel = ViewModel(repository)

@Test
fun makeTest() {
    every ...
    every { makeCall { repository.loadData() } } returns Single.just(listOf<Example>())

    viewModel.loadData().test()...
}
...