2010-05-27 11 views
7

Mockito API proporciona método:Mockito Verifique que no haya más interacciones pero omiten captadores

Mockito.verifyNoMoreInteractions(someMock); 

pero ¿es posible en Mockito para declarar que no quiero más interacciones con una maqueta dada con las excepciones de las interacciones con su métodos getter?

El escenario simple es aquel en el que pruebo que el SUT cambia solo ciertas propiedades de un simulacro dado y deja sin explotar otras propiedades.

En el ejemplo que quiero probar que UserActivationService cambios de propiedad activa en una instancia de usuario de clase, pero does't hacer nada para propiedades como papel, contraseña, AccountBalance, etc.

+0

Véase también http://stackoverflow.com/questions/12013138/mockito-verify-no-more-interactions-with-any-mock – Vadzim

Respuesta

13

Sin esta funcionalidad no está actualmente en Mockito . Si lo necesitas a menudo, puedes crearlo tú mismo usando la wizzardry de reflexión, aunque eso te resultará un poco doloroso.

Mi sugerencia sería para verificar el número de interacciones de los métodos que no desea demasiado a menudo llamada usando 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(); 
} 

Por supuesto, la sensibilidad del diseño API WorldLeader podría ser discutible, pero como un ejemplo que debería hacer.

Cuestiones relacionadas