Est-ce possible? J’ai essayé avec EasyMock.expectLastCall().times(0);
mais EasyMock se plaint que les temps doivent être> = 1
Vous pouvez utiliser .andThrow(new AssertionFailedError()).anyTimes();
– Il s’agit de la même exception que Assert.fail()
, mais elle est moins détaillée que celle de Answer
.
avec easymock 3.0, vous devez append un .anyTimes () sur le expectLastCall ou le test échouera:
Expectation failure on verify: myMethod(): expected: 1, actual: 0`
sur la base de l’exemple nkr1pt:
expectLastCall().andAnswer(new IAnswer() { public Object answer() { Assert.assertFail(); return null; } }).anyTimes();
Le fait SsortingctMock
méthode ne soit appelée est contrôlé par Mock
ou SsortingctMock
. Ils lèveront une exception lorsque cette méthode non enregistrée est appelée. Ce problème se produit uniquement lors de l’utilisation de NiceMock
, où les valeurs par défaut sont renvoyées lors de l’appel de méthodes non enregistrées.
Donc, une solution peut être de ne pas utiliser NiceMock
.
Ça ressemble à un insecte pour moi. La classe interne Range
ne permet pas de définir un maximum inférieur à 1.
Ne pourriez-vous pas vous moquer de cette méthode et simplement appeler Assert.fail()
?
Si vous vous attendez à ce que votre méthode ne soit pas appelée, ne l’enregistrez pas. Mais je conviens que ça ne marchera pas avec une belle maquette.
J’ai réussi à trouver une solution:
expectLastCall().andAnswer(new IAnswer() { public Object answer() { Assert.assertFail(); return null; } });