Я не могу высмеивать частные функции в тестах Android.Я также использую полностью открытый плагин для предварительного тестирования.На не андроидных тестах работает без проблем.Я полагал, что это должно работать на андроиде также, потому что это отмечено на MockK-андроиде.Это не реализовано или я упускаю что-то очевидное?
androidTestImplementation "io.mockk:mockk-android:1.8.7"
@OpenForTesting
class A {
fun publicFun() = privateFun()
private fun privateFun() {}
protected fun protectedFun() {}
}
@Test
fun privateFunctionMock() {
val spy = spyk<A>()
val mock = mockk<A>()
val a = A()
val functions = a::class.functions // size -> 6
val spyFunctions = spy::class.functions // size -> 5
val mockFunctions = mock::class.functions // size -> 5
every { spy["privateFun"]() } returns Unit
a.publicFun()
}
Сбой с исключением, потому что частная функция отсутствует. io.mockk.MockKException: не удается найти функцию privateFun () для динамического вызова