2017-08-29 5 views

Répondre

2

Comme ceci:

@RunWith(MockitoJUnitRunner.class) 
public class OffStateTest { 

    @Mock 
    private Fan fan; 

    @Test 
    public void testChangeState() { 
     //Arrange 
     OffState offState = new OffState(); 

     //Act 
     offState.changeState(fan); 

     //Assert 
     Mockito.verify(fan).setState(Mockito.any(OnState.class)); 
    } 
} 
+0

@Nkosi: Je présume que les 'OnState.equals() 'méthode couvrirait cela. J'ai commencé à écrire une forme ArgumentCaptor du cas de test, mais je pensais que cela ne ferait que compliquer les choses. Quoi qu'il en soit, utiliser 'Mockito.any()' est le moyen le plus simple de le faire passer et l'OP peut passer à un matcher personnalisé ou ArgumentCaptor si nécessaire. Merci! – glytching

+0

Mais si j'ai utilisé l'un des éléments verify (fan) .setState (Mockito.any (OffState.class)); ou vérifier (fan) .setState (Mockito.any (OnState.class)); ça marche encore – Srinivas