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
verwendet@Property
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);
}
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?
Die Klasse, die ich teste, ist diese< /p>
package com.chickengame.controller.game;
import com.chickengame.Game;
import com.chickengame.controller.Controller;
import com.chickengame.gui.GUI;
import com.chickengame.model.Position;
import com.chickengame.model.menus.GameEndMenu;
import com.chickengame.model.game.elements.Chicken;
import com.chickengame.model.game.map.Map;
import com.chickengame.state.menus.GameEndState;
public class MapController extends Controller {
private final Chicken chicken;
private final ChickenController chickenController;
private final int adapter;
public MapController(Map location, ChickenController chickenController, int adapter) {
super(location);
this.chickenController = chickenController;
this.chicken = chickenController.getLocation();
this.adapter = adapter;
}
@Override
public void step(Game game, GUI gui, GUI.Action action) {
Position position = chicken.getPosition();
boolean chickenOutX = (position.getX() + chicken.getWidth()
Mockito verhält sich seltsam ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post