Я получаю mockito, который требуется, но не вызывается.Я не знаю, что делать, потому что я новичок здесь :).кстати, когда я запускаю код в реальном устройстве, все в порядке.
Требуется, но не вызывается: наблюдатель.onChanged (true);
TestClass
@RunWith(MockitoJUnitRunner::class)
class LoginViewModelTest {
var loginViewModel: LoginViewModel? = null
@get:Rule
val instantTaskExecutorRule = InstantTaskExecutorRule()
@Mock
lateinit var observer: Observer<Boolean>
@Mock
lateinit var dataManager: DataManager
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
loginViewModel = LoginViewModel(dataManager)
}
@Test
fun testApiFetchDataSuccess() {
loginViewModel?.liveData?.observeForever(observer)
loginViewModel?.login("test", "1234")
verify(observer)?.onChanged(true)
}
}
ViewModelClass
class LoginViewModel(dataManager: DataManager?) : BaseViewModel() {
var liveData: MutableLiveData<Boolean>
var dataManager: DataManager? = dataManager
init {
liveData = MutableLiveData()
}
fun login(email: String, password: String) {
dataManager?.getFireStoreManager()?.login(email, password)?.get()?.addOnSuccessListener {
if (it.documents.size > 0) {
val data = it.documents[0].toObject(User::class.java)
liveData.postValue(true)
} else {
liveData.postValue(false)
}
}?.addOnFailureListener {
liveData.postValue(false)
}
}
}