API Mockito предоставляет метод:
Mockito.verifyNoMoreInteractions(someMock);
но действительно ли возможно в Mockito объявить, что я не хочу большего количества взаимодействий с данной насмешкой за исключениями взаимодействий с ее методами получателя?
Простой сценарий является тем, в котором я тестирую это, SUT изменяет только определенные свойства данной насмешки и оставляет другие свойства неиспользованными.
В примере я хочу протестировать то свойство Active изменений UserActivationService на экземпляре класса Пользователь, но ничего не делает к свойствам как Роль, Пароль, AccountBalance, и т.д.
Нет, в 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 может быть спорной, но в качестве примера это должно быть сделано.