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

API Mockito предоставляет метод:

Mockito.verifyNoMoreInteractions(someMock);

но действительно ли возможно в Mockito объявить, что я не хочу большего количества взаимодействий с данной насмешкой за исключениями взаимодействий с ее методами получателя?

Простой сценарий является тем, в котором я тестирую это, SUT изменяет только определенные свойства данной насмешки и оставляет другие свойства неиспользованными.

В примере я хочу протестировать то свойство Active изменений UserActivationService на экземпляре класса Пользователь, но ничего не делает к свойствам как Роль, Пароль, AccountBalance, и т.д.

8
задан iwein 26 March 2015 в 07:33
поделиться

1 ответ

Нет, в Mockito в настоящее время нет этой функции. Если вам это нужно часто, вы можете создать его самостоятельно, используя волшебство отражения, хотя это будет немного болезненно.

Я предлагаю проверить количество взаимодействий с методами, которые вы не хотите вызывать слишком часто, используя VerificationMode :

@Test
public void worldLeaderShouldNotDestroyWorldWhenMakingThreats() {
  new WorldLeader(nuke).makeThreats();

  //prevent leaving nuke in armed state
  verify(nuke, times(2)).flipArmSwitch();
  assertThat(nuke.isDisarmed(), is(true));
  //prevent total annihilation
  verify(nuke, never()).destroyWorld();
}

Конечно, разумность дизайна WorldLeader API может быть спорной, но в качестве примера это должно быть сделано.

15
ответ дан 5 December 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: