У меня ViewModel выглядит следующим образом.
class SignInViewModel(private val requestDataUseCase: RequestDataUseCase) : ViewModel() {
...
var isLoading = MediatorLiveData<Boolean>()
...
fun requestData(id: String) {
requestDataUseCase(id).let { liveData ->
isLoading.value = true
isLoading.addSource(liveData) {
it?.either(this::onSuccess, this::handleError)
isLoading.removeSource(liveData)
isLoading.value = false
}
}
}
...
}
Мой тестовый класс
class SignInViewModelTest {
private lateinit var signInViewModel: SignInViewModel
@Mock private lateinit var requestDataUseCase: RequestDataUseCase
private val dataResponse: MutableLiveData<String> = MutableLiveData()
@Before
fun setUp() {
signInViewModel = SignInViewModel(requestDataUseCase)
}
@Test
fun testRequestData() {
`when`(requestDataUseCase(any(), any())).thenReturn(dataResponse)
//trying to call
fun requestData("123456")
}
}
Проблема в том, что я получил NullPointerException
переменную isLoading
в классе SignInViewModel
.
Это переменная, управляющая ProgressBar
в макете XML.
Итак, мой вопрос, как я могу издеваться над переменной isLoading
?
Или есть какие-либо предложения о том, как создать тест для этого сценария?
Заранее спасибо.