Как смоделировать класс приложения для модульного тестирования ViewModel - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть 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 может только макетировать не частные и не финальные классы.

Как мне насмехаться над классом Application, чтобы передать его в мою модель представления?

Редактировать:

Вот моя иерархия папок, предложенная @ farhanjk

enter image description here

1 Ответ

0 голосов
/ 09 апреля 2019

Mockito.mock(Application::class.java)

В папке test создайте иерархию, подобную следующей:

enter image description here

В org.mockito.plugins.MockMaker file, просто поместите однострочный текст mock-maker-inline.

Насмешка над немодным: нецензурная насмешка над окончательными классами / методами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...