2010-05-27 14 views
7

Mockito API fornisce metodo:Mockito verificare altre interazioni, ma omette getter

Mockito.verifyNoMoreInteractions(someMock); 

Ma è possibile in Mockito a dichiarare che io non voglio più interazioni con un dato finta con le eccezioni di interazioni con il suo metodi getter?

Lo scenario semplice è quello in cui si verifica che il SUT modifichi solo determinate proprietà di un dato mock e lascia le altre proprietà inutilizzate.

Nell'esempio voglio provare che UserActivationService cambia proprietà Active su un'istanza della classe per l'utente, ma does't tutto pur di immobili come ruolo, password, AccountBalance, ecc

+0

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

risposta

13

No questa funzionalità non è attualmente in Mockito . Se ne hai bisogno spesso puoi crearlo tu stesso usando la riflessione sulla tormenta, anche se questo sarà un po 'doloroso.

Il mio suggerimento sarebbe quello di verificare il numero di interazioni sui metodi che non si desidera chiamato troppo spesso utilizzando 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(); 
} 

Naturalmente la sensibilità del disegno WorldLeader API potrebbe essere discutibile, ma come un esempio che dovrebbe fare.

Problemi correlati