Итак, у меня есть следующий тест, который продолжает проваливаться со следующей ошибкой:
java .lang.AssertionError: Нет значений (защелка = 1, значения = 0, ошибки = 0, завершения = 0)
val ocrProcessor = mockk<FirebaseFormProcessor>()
val date = listOf(DateTextExtraction())
every { ocrProcessor.scan(any(), any(), any()) } answers {
thirdArg<OcrResultCallback>().invoke(date)
}
viewModel = FormViewModel(ocrProcessor)
viewModel.addImage(bitmap)
viewModel.ocrAlert
.test()
.assertValue {
it == date
}
.addTo(disposeBag)
То, что это пытается проверить, таково:
override val ocrAlert: PublishSubject<List<TextExtractionInterface>> = PublishSubject.create()
override fun addImage(bitmap: Bitmap) {
if (files.value.isEmpty())
ocrProcessor.scan(bitmap, extract = textExtractionItems) { ocrResult ->
ocrAlert.onNext(ocrResult)
}
}
Я не совсем уверен, что я делаю здесь неправильно, но я думаю, что это может иметь чтобы решить проблемы с потоками.
edit:
Теперь я изменил код на:
val toBeTested = viewModel.ocrAlert
.subscribeOn(scheduler)
.observeOn(scheduler)
.test()
viewModel.addImage(bitmap)
toBeTested
.assertValue {
it == date
}
.addTo(disposeBag)