Я инициализирую свой ViewModel на верхнем уровне, и, когда он инициализируется, он вызывает свой блок init {}
, который затем вызывает методы, которые я заглушаю в блоке @Before.
Хотя все тесты пройдены, NullPointerExceptionsбросается в методы, которые я вызываю в init {}
.Я пытался lateinit
мой ViewModel
в @Before
блок.Это не сработало.
// AViewModelTest.kt
private val repoMock: ARepository = mock()
private val viewModel: AViewModel = AViewModel(repoMock)
@Before
fun setup() {
// method stubbing
`when`(repoMock.getSmth()).thenReturn(response)
}
// AViewModel.kt
constructor(repo: ARepository) {}
init {
onStartLoading(repo)
}
fun onStartLoading(repo: ARepository) {
val response = repo.getSmth()
handleResponse(response) // response is null here -> NullPointerException
}