Tengo un ViewModel como este.
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 } } } ... }mi clase de prueba
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") } } El problema es que obtuve NullPointerException en la variable isLoading en la clase SignInViewModel .
Es la variable que controla ProgressBar en el diseño XML.
Entonces mi pregunta es ¿cómo puedo burlarme de la variable isLoading ?
¿O hay alguna sugerencia sobre cómo debo crear una prueba para este escenario?
Gracias de antemano.