По какой-то причине я изо всех сил пытаюсь протестировать асинхронный вызов в моей базе данных в течение 2 дней, и я хочу просто отправить нового пользователя в базу данных и убедиться, что метод onSuccess () вызывается для передачи тест.
Это то, что я сделал
PresenterTest
@Captor private lateinit var callbackCaptor: ArgumentCaptor<RegisterInteractor.RegisterCallBack>
@Mock
lateinit var view: RegisterContract.View
@Mock
lateinit var interactor: RegisterInteractor
lateinit var presenter: RegisterPresenter
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
presenter = RegisterPresenter(interactor)
presenter.attachView(view)
}
@Test
fun should_SignUpUser(){
presenter.signUp("testUser","testUser@gmail.com","123456")
verify(interactor).createUserWithEmailAndPassword("testUser","testUser@gmail.com","123456",callbackCaptor.capture())
verify(callbackCaptor.value.onRegistrationSucces(), times(1))
}
Что я делаю здесь, так это проверяю, чтобы обратный вызов onSuccess () вызывался один раз после его завершения, но я получаю эту ошибку в этой строке
verify(interactor).createUserWithEmailAndPassword("testUser","testUser@gmail.com","123456",callbackCaptor.capture())
Error
java.lang.IllegalStateException: callbackCaptor.capture () не должно быть
нуль
Я прочитал и пытаюсь найти решение, но я не могу выполнить эту простую операцию, если кто-то знает, что лучший или более простой способ будет высоко оценен