Mockito verhält sich seltsamJava

Java-Forum
Anonymous
 Mockito verhält sich seltsam

Post by Anonymous »

Ich habe einige Tests durchgeführt und schaffe es nicht richtig.
Ich habe einige Tests mit Mockito und jqwik durchgeführt und wollte feststellen, ob eine Methode genau aufgerufen wird 5 Dafür habe ich mal die Funktion
verwendetMockito.verify(chickenController, Mockito.times(5)).step(game,gui,action);
aber es sieht so aus, als würde der Mockito die Anzahl der Interaktionen mit dem Mock summieren, denn wenn ich das tue, erhalte ich eine Fehlermeldung
Wanted 5 times: -> at com.chickengame.controller.MapControllerTest.verifycoligions(MapControllerTest.java:104) But was 10 times:
Zuerst dachte ich, obwohl mein Code es nur fünfmal aufrief, hätte ich etwas falsch gemacht, also habe ich zum Testen die Anzahl der erwarteten Interaktionen auf 10 und dann auf das Gleiche geändert Fehler erschien, aber etwas anders
Wanted 5 times: -> at com.chickengame.controller.MapControllerTest.verifycoligions(MapControllerTest.java:104) But was 5 times:
Meine Frage ist, fasst Mockito die Anzahl der Interaktionen zusammen?
Das ist mein Test.
void verifycoligions(@ForAll("ActionArbitrary") GUI.Action action, @ForAll boolean collidesUp,@ForAll boolean collidesDown, @ForAll boolean colidesright)
{
Mockito.when(chicken.getPosition()).thenReturn(new Position(0,0));
Mockito.when(chicken.getHeight()).thenReturn(40);
Mockito.when(chicken.getWidth()).thenReturn(40);
Mockito.when(chickenController.getLocation()).thenReturn(chicken);
Mockito.when(map.collidesDown(Mockito.anyInt(), Mockito.anyInt(),Mockito.anyInt())).thenReturn(collidesDown);
Mockito.when(map.collidesRight(Mockito.anyInt(), Mockito.anyInt(),Mockito.anyInt())).thenReturn(colidesright);
Mockito.when(map.collidesUp(Mockito.anyInt(), Mockito.anyInt(),Mockito.anyInt())).thenReturn( collidesUp);
Mockito.when(map.collidesHarmObject(Mockito.anyInt(), Mockito.anyInt(),Mockito.anyInt(),Mockito.anyInt())).thenReturn(false);
mapController = new MapController(map,chickenController,offset);

mapController.step(game, gui, action);

Mockito.verify(chickenController, Mockito.times(5)).step(game,gui,action);
}

und die Funktion, die ich teste, ist die folgende
for (int i = 0; i < offset; i++) {

chickenController.step(game, gui, action);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post