Mockito не проверява повече взаимодействия, но пропуска гетери

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

Mockito.verifyNoMoreInteractions(someMock);

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

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

В пример искам да тествам дали UserActivationService променя свойството Active на екземпляр на клас User, но не прави нищо на свойства като Role, Password, AccountBalance и т.н.


person mgamer    schedule 27.05.2010    source източник
comment
Вижте също stackoverflow. com/questions/12013138/   -  person Vadzim    schedule 17.10.2013


Отговори (1)


Не, тази функционалност в момента не е в Mockito. Ако имате нужда от него често, можете да го създадете сами с помощта на отражение wizzardry, въпреки че това ще бъде малко болезнено.

Моето предложение би било да проверите броя на взаимодействията на методите, които не искате да се извикват твърде често, като използвате 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();
}

Разбира се, чувствителността на дизайна на API на WorldLeader може да бъде спорна, но като пример трябва да е така.

person iwein    schedule 13.06.2010