это мой первый вопрос, поэтому прошу прощения, если я сделал что-то не так.
Я тестирую сценарий использования, который принимает введенный параметр конструктора Lazy Dagger.
import dagger.Lazy
class TrackSpeed (val analyticsRepository: Lazy<AnalyticsRepository>) {
fun execute(timeMillis: Long) {
analyticsRepository.get().trackSpeed(timeMillis)
}
}
Я не знаю, как издеваться над AnalyticsRepository, потому что это Lazy.
Вот как выглядит мой тестовый класс прямо сейчас:
class TrackSpeedTest {
private lateinit var trackSpeed: TrackSpeed
private val analyticsRepository: Lazy<AnalyticsRepository> = mock()
@Before
fun setUp() {
trackSpeed = TrackSpeed(analyticsRepository)
}
@Test
fun testTrackSpeed() {
val time: Long = 0
trackSpeed.execute(time)
verify(analyticsRepository.get(), times(1))
.trackSpeed(time)
}
Нет ошибок компиляции, но когда я запускаю тест, происходит сбой с этим исключением:
java.lang.ClassCastException: io.reactivex.internal.operators.flowable.FlowableError не может быть приведен к com.package.AnalyticsRepository в com.package.TrackSpeed.execute ()
Есть предложения?
Заранее спасибо.