2010-05-27 8 views
7

Mockito api bietet Methode:Mockito nicht mehr Wechselwirkungen überprüfen aber weglassen Getter

Mockito.verifyNoMoreInteractions(someMock); 

aber ist es möglich, in Mockito zu erklären, dass ich mit einem bestimmten Mock mehr Interaktionen will nicht mit den Ausnahmen von Interaktionen mit seinem Gettermethoden?

Das einfache Szenario ist das, in dem ich teste, dass das SUT nur bestimmte Eigenschaften eines gegebenen Scheines ändert und andere Eigenschaften ungenutzt lässt.

Im Beispiel möchte ich, dass UserActivationService Eigenschaft ändert Aktiv auf einer Instanz der Klasse Benutzer testen, aber does etwas zu Eigenschaften wie Rolle, Passwort, AccountBalance usw.

+0

Siehe auch http://stackoverflow.com/questions/12013138/mockito-verify-no-more-interactions-with-any-mock – Vadzim

Antwort

13

Nein ist diese Funktionalität derzeit nicht in Mockito . Wenn Sie es oft brauchen, können Sie es selbst mit Reflection Wizzardry erstellen, obwohl das ein bisschen schmerzhaft sein wird.

Mein Vorschlag wäre, die Anzahl der Interaktionen über die Methoden, um sicherzustellen, Sie wollen nicht zu oft genannt mit 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(); 
} 

Natürlich ist die Sensibilität des Worldleader API-Design könnte fraglich sein, aber als Ein Beispiel sollte es tun.

Verwandte Themen