Je veux juste savoirMockito quand et vérifier la différence de méthode
1) quand je l'appelle à when()
Mockito, il exécute en fait le comportement de la méthode mockedObject ou non?
2) what Si je renvoie une valeur incorrecte dans when().thenReturn()
comme ci-dessous. Le test élémentaire sera "faux" ou renverra-t-il 50 au lieu de 30?
when(mockedObject.add(10,20)).thenReturn(50);
3) Pourquoi devrais-je utiliser thenReturn()
obligatoire, même si la méthode objet moquée est vide? (Il est donne erreur lorsque je n'ai pas utilisé thenReturn()
.
ajoute une fonctionnalité à un objet simulé en utilisant la quand() méthode.
@Test
public void testAdd(){
when(mockedObject.add(20.0,30.0)).thenReturn(50.00);
}
4) Si j'appelle
verify(mockedObject,times(1)).add(20.0, 30.0);
Il vérifie que les méthodes sont appelées sur objet mocké ou non avec le même paramètre et vérifie l'appel à la méthode comme seulement 1 fois, non? Donc, puis-je utiliser quand() pour ajouter une fonctionnalité à la méthode objet moquée sans utiliser verify() ou il exige en fait d'invoquer verify() après avoir appelé quand() méthode
1) vous avez dit Non pour 1 question, je suis tombé c'est OUI. when() n'exécutera que le comportement de la méthode mockedObject. Quand vous utilisez @spy, alors seule la méthode réelle de l'objet réel sera appelée, je pense. vérifiez ce https://www.tutorialspoint.com/mockito/mockito_spying.htm –
Lorsque vous n'utilisez pas when.thenRetrun pour un objet Mocked alors l'implémentation ne sera pas appelée, vous obtiendrez la valeur de retour par défaut. Si vous n'utilisez pas doReturn.when.then sur un objet Spied, une méthode réelle sera appelée –