Интересно, что можно запустить лямбда-функцию, переданную в качестве параметра для фиктивной функции. И запускайте его всякий раз, когда вызывается смоделированный метод.
Я использую Mockk и представляю, что код выглядит примерно так:
class DataManager {
fun submit(lambda: (Int) => Unit) { ... }
}
...
val mock = mockk<DataManager>()
every { mock.submit(lambda = any()) }.run { lambda(5) }
В моей реальной реализации менеджер данных вызывает сервер и запускает лямбду как обратный вызов, когда получает успешный ответ. Лямбда - это частный метод тестируемого класса.