У меня View Model
, который расширяет AndroidViewModel
class MoveViewModel(application: Application): AndroidViewModel(application),CoroutineScope{
....
}
И я хочу провести модульное тестирование, но не могу понять, как издеваться над классом приложения.
@Test
fun testSearchDataValidation() {
val application = Mockito.mock(Application::class.java)
val viewModel = MoveViewModel(application)
.....
}
Но когда я иду запустить тест, я получаю сообщение об ошибке, которое Mockito
не может высмеять Application
org.mockito.exceptions.base.MockitoException: Mockito не может издеваться над этим классом: class android.app.Application.
Mockito может издеваться только над не закрытыми и не финальными классами.
Как издеваться над классом приложения, чтобы передать его моей модели представления?
Изменить:
Вот моя иерархия папок, предложенная @farhanjk
test
? - person tyczj   schedule 10.04.2019test
, вам нужно будет имитировать все зависимости Android (например,Application
илиSharedPreferences
), тесты в папкеandroidTest
вместо этого будут иметь ваше фактическое приложение. Вы должны иметь возможность тестировать модели представления вtest
, они намного быстрее, чемandroidTest
. - person lelloman   schedule 10.04.2019