2010-05-27 15 views
7

Mockito API zapewnia metoda:Mockito weryfikacji nie więcej interakcji pominięciem getters

Mockito.verifyNoMoreInteractions(someMock); 

ale jest to możliwe w Mockito o stwierdzenie, że nie chcę więcej interakcji z danym mock z wyjątkami interakcji z jego metody getter?

Prostym scenariuszem jest ten, w którym testuję, że SUT zmienia tylko niektóre właściwości danej próby i pozostawia inne właściwości niewykorzystane.

Na przykład chcę, aby przetestować ten UserActivationService zmienia właściwość aktywny na wystąpienie klasy użytkownika ale does't niczego do właściwości takich jak rola, Hasło, AccountBalance itp

+0

Zobacz również http://stackoverflow.com/questions/12013138/mockito-verify-no-more-interactions-with-any-mock – Vadzim

Odpowiedz

13

Nie ta funkcja nie jest obecnie w Mockito . Jeśli często go potrzebujesz, możesz sam go stworzyć, korzystając z funkcji reflectz wizry, choć będzie to trochę bolesne.

Moja sugestia byłoby zweryfikować liczbę interakcji na temat metod, które nie mają zbyt często nazywany przy użyciu 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(); 
} 

Oczywiście wrażliwość projektu WorldLeader API może być dyskusyjna, ale jako przykład powinien to zrobić.