Я просто пытаюсь проверить, создан ли пользователь с помощью асинхронного метода, я новичок в тестировании, и я использую ArgumentCaptor
, чтобы проверить, вызывается ли обратный вызов onRegistrationSucces()
1 раз, чтобы проверить, что онбыл успешным.
Это то, что я сделал, чтобы проверить это
RegisterTest.kt
@Test
fun should_SignUpUser(){
presenter.signUp("test1","test1@gmail.com","asdasd")
verify(interactor).createUserWithEmailAndPassword("test1","test1@gmail.com","asdasd",object: RegisterInteractor.RegisterCallBack{
override fun onRegistrationSucces() {
callbackCaptor.capture()
}
override fun onRegistrationFailure(errorMsg: String) {
callbackCaptor.capture()
}
})
verify(callbackCaptor.value.onRegistrationSucces(), times(1))
}
И это метод презентатора, который я пытаюсь проверить
RegisterPresenter.kt
override fun signUp(fullName:String, email: String, password: String) {
view?.showProgress()
registerInteractor.createUserWithEmailAndPassword(fullName,email, password, object : RegisterInteractor.RegisterCallBack {
override fun onRegistrationSucces() {
if(isViewAttached()){
view?.navigateToLogin()
view?.hideProgress()
}
}
override fun onRegistrationFailure(errorMsg:String) {
if(isViewAttached()){
view?.showError(errorMsg)
view?.hideProgress()
}
}
})
}
Но я получаю эту ошибку
Аргумент (ы) разные!Требуются: interactiveor.createUserWithEmailAndPassword ("test1", "test1@gmail.com", "asdasd", com.testapp.presentation.register.presenter.RegisterPresenterTest$should_SignUpUser$1@c86b9e3);-> at com.testapp.presentation.register.presenter.RegisterPresenterTest.should_SignUpUser (RegisterPresenterTest.kt: 119) У фактического вызова есть разные аргументы: interactiveor.createUserWithEmailAndPassword («test1», «test1@gmail.com», «asd»).testapp.presentation.register.presenter.RegisterPresenter $ signUp $ 1 @ 10aa41f2);-> at com.testapp.presentation.register.presenter.RegisterPresenter.signUp (RegisterPresenter.kt: 64)