Les Usages de doThrow() doAnswer() ne rien faire() et doReturn() dans mockito
J'apprenais mockito et j'ai compris la base des usages des fonctionnalités mentionnées ci-dessus à partir de la lien.
Mais je voudrais savoir si il peut être utilisé pour tout autre cas?
- Malheureusement, le lien est en bas.
Vous devez vous connecter pour publier un commentaire.
doThrow : Essentiellement utilisés lorsque vous souhaitez lancer une exception lorsqu'une méthode est appelée à l'intérieur de l'objet fantaisie.
doReturn : Utilisé lorsque vous voulez renvoyer une valeur de retour lorsqu'une méthode est exécutée.
doAnswer: Parfois, vous devez effectuer certaines actions avec les arguments qui sont passés à la méthode, par exemple, ajouter un peu de valeurs, de faire certains calculs ou même de les modifier doAnswer vous donne la Réponse interface en cours d'exécution dans le moment que la méthode est appelée, cette interface vous permet d'interagir avec les paramètres via le InvocationOnMock argument. Aussi, la valeur de retour de réponse de la méthode de la valeur de retour de la moqué de méthode.
ne rien faire: il Est le plus facile de la liste, en gros il dit Mockito de ne rien faire quand une méthode dans un objet fantaisie est appelé. Parfois utilisé dans de retour void méthodes ou d'une méthode qui n'a pas d'effets secondaires, ou ne sont pas liés à l'unité de test que vous faites.
doNothing()
méthode, puis, vous êtes effectivement dire la méthode (si nulle ou quoi que ce soit) à ne rien faire, plutôt, il est régulier, potentiellement contradictoires comportement. Je suis un newb afin de me corriger si nécessaire.doReturn
sur unvoid
méthode, et ne vous laisse pas fairedoNothing()
sur la valeur de retour de la méthode: il n'y a rien de magiquedoNothing()
, en d'autres termes: son équivalent exact dedoReturn
, pour unvoid
méthode: dans les deux cas, vous êtes lui disant de ne pas faire son travail normal des choses...Cela dépend du type de test de double vous souhaitez interagir avec:
En d'autres termes, à se moquer de la seulement utile interactions avec un collaborateur sont celles que vous fournissez. Par défaut, les fonctions retournent null, méthodes void ne rien faire.
Un exemple très simple, c'est que si vous avez un
UserService
qui a@Autowired
jpa resposirotyUserRepository
puis dans la classe de test pour
UserService
vous ne@InjectMocks
raconte le cadre qui prennent le@Mock UserRepository userRespository;
et de les injecter dansuserService
alors plutôt que de l'auto de câblage d'une véritable instance deUserRepository
un Simulacre deUserRepository
seront injectés dansuserService
.Si vous testez une logique de classe et il fait appel à des méthodes void la ne rien faire est parfait.