Test que la méthode void n'a pas été appelée avec EasyMock
Est-ce possible?
J'ai essayé avec EasyMock.expectLastCall().times(0);
mais EasyMock se plaint que le temps doit être >=1
source d'informationauteur nkr1pt
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
.andThrow(new AssertionFailedError()).anyTimes();
- c'est la même chose sauf queAssert.fail()
lancers, mais est moins verbeux que de faire unAnswer
.avec easymock 3.0, vous devez ajouter un .anyTimes() sur le expectLastCall ou le test échoue:
basé sur nkr1pt exemple:
Le fait que certaines méthode n'est pas appelée est contrôlée par
Mock
ouStrictMock
. Ils vont jeter une exception, lorsque que pas enregistré méthode est appelée. Ce problème se produit uniquement lors de l'utilisation deNiceMock
s, où les valeurs par défaut sont retournés lors de l'appel pour ne pas les méthodes enregistrées.Si une solution peut être de ne pas utiliser
NiceMock
s.Ressemble à un bug pour moi. La classe interne
Range
ne permet pas de définir un maximum de moins de 1.Ne pouvais pas vous moquer de cette méthode, et il suffit d'appeler
Assert.fail()
?Si vous attendez de votre méthode de ne pas être appelé ensuite il suffit de ne pas l'enregistrer. Mais je suis d'accord, ça ne marchera pas avec une belle maquette.
J'ai réussi à trouver une solution: