IllegalStateException при выполнении модульного тестирования с ArgumentCaptor - PullRequest
0 голосов
/ 01 мая 2019

По какой-то причине я изо всех сил пытаюсь протестировать асинхронный вызов в моей базе данных в течение 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 () не должно быть нуль

Я прочитал и пытаюсь найти решение, но я не могу выполнить эту простую операцию, если кто-то знает, что лучший или более простой способ будет высоко оценен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...