EasyMock s'attend à ce que la méthode retourne plusieurs objets différents dans le même test
Je suis avec EasyMock à l'unité de tester mon code Java. La classe je suis en train de tester un service web RESTful API couche. L'API a une sous-couche de service qui est en train de se moquaient de l'API de test. Mon problème est de savoir comment correctement l'unité de test de mon editObject(ID, params...)
méthode de l'API, car il demande service.getById()
deux fois et s'attend à un autre objet pour être retourné à chaque appel.
editObject(ID, params...)
essaie d'abord de saisir l'objet à partir de la couche de service assurez-vous que l'ID est valide (première service.getById(ID)
appel à attendre, des retours d'origine non modifiée de l'objet). Ensuite, il modifie les paramètres spécifiés dans l'appel d'API, il enregistre pour le service, et les appels sont de nouveau à la main à l'appelant le service géré objet modifié (deuxième service.getbyId(ID)
appel à attendre, renvoie objet modifié).
Est-il un moyen de représenter cette avec EasyMock?.
source d'informationauteur Amanda_A
Vous devez vous connecter pour publier un commentaire.
Bien sûr, vous pouvez faire deux choses différentes pour les deux appels à la méthode avec la même méthode et les paramètres. Il suffit de déclarer vos attentes dans l'ordre que vous attendez d'arriver et de définir les réponses en conséquence.
La
.once()
est facultatif, mais je trouve que dans ce cas, c'est plus de l'auto-documentation.Vous pouvez enchaîner plusieurs
andReturn
les appels de méthode:La première fois
service.getById
est appelée avec1
comme argument la maquette sera de retourfirstObject
et la deuxième foissecondObject
. Vous pouvez enchaîner autant que vous le souhaitez et même jeter une exception parandThrow
pour un appel spécifique.Cette technique est également utile dans les expressions conditionnelles dans lequel vous pouvez invalider la première condition, mais passer à la deuxième ou vice-versa.