Mockito, TooManyActualInvocations при тестировании условий Spek Framework - PullRequest
0 голосов
/ 07 мая 2019

Для модульного тестирования сценария пользователь вводит пароль и подтверждение пароля. Когда я пытаюсь проверить тот же метод, который вызывается в другом блоке on(), я получаю следующую ошибку во втором блоке on().

org.mockito.exceptions.verification.TooManyActualInvocations: 
activationPasswordView.disableButton();
Wanted 1 time:
But was twice

Вот код:

 given("user set password "){

        on(“password is null”){
         presenterImpl.validatePassword(null, null)

            it("done button should be disabled"){
                verify(view).disableButton()
            }
        }

        on("input only one password"){
          presenterImpl.validatePassword("Password", "")

            it("done button should be disabled"){
                verify(view).disableButton()
            }
        }
    }

Но если я вызываю другой метод, он работает правильно. Я предполагаю, что это не то, как Spek Framework должен был использоваться, поскольку все примеры, которые я видел, всегда используют Assert. Есть ли способ, которым я могу написать следующие условия в Spek без ошибки? Даже другой given() все еще вызывает ошибку.

1 Ответ

0 голосов
/ 07 мая 2019

Смоделированный объект подсчитывает количество раз, которое функция вызывала для конкретного макета.Поскольку вы не сбрасывали макет между каждым тестом, счетчик увеличивается каждый раз, когда вы вызываете метод.

Вы должны использовать: reset(view) для сброса счетчика макетов.Эта проблема не связана со структурой Spek.

...