Hallo Java-Freunde,
ich teste gerade mit JUnit ein Projekt, bin da aber leider noch nicht so fit. Wie kann ich verhindern, dass während des Tests einer Methode Objektmethoden anderer Klassen aufgerufen werden, da dies logischerweise zu einer NullPointerException führt. Objekte dieser Klasse kann ich auch nicht initialisieren, da es sich um eine Controller-Klasse für ein FXML-Sheet handelt.
Hier mal der Code dazu:
Die Junit-Testmethode zu rotate:
Vielen Dank für eure Hilfe!
ich teste gerade mit JUnit ein Projekt, bin da aber leider noch nicht so fit. Wie kann ich verhindern, dass während des Tests einer Methode Objektmethoden anderer Klassen aufgerufen werden, da dies logischerweise zu einer NullPointerException führt. Objekte dieser Klasse kann ich auch nicht initialisieren, da es sich um eine Controller-Klasse für ein FXML-Sheet handelt.
Hier mal der Code dazu:
Java:
public void rotate() {
// Berechnungen
glc.paint(board); // Sollte nicht ausgeführt werden beim Test
}
Die Junit-Testmethode zu rotate:
Java:
@Test
void testRotate() {
try {
Class c = Class.forName("de.ubt.ai1.bp.bt705828.main.Tetris");
Tetris t = (Tetris) c.newInstance();
Method m = c.getDeclaredMethod("rotate", null);
m.setAccessible(true);
Tetromino tet = new Tetromino(0, Color.PURPLE, new int[][] {{1, 1, 0}, {0, 1, 1}});
Tetromino tet2 = new Tetromino(4, Color.YELLOW, new int[][] {{0, 1}, {1, 1}, {1, 0}}); //rotated tet
t.setX(0); t.setY(tet.getShape().length-1); t.setTetToPos(tet, t.getX(), t.getY()); t.setTetromino(tet);
m.invoke(t, null);
assertTrue(equal(tet2.getShape(), t.getTetromino().getShape()));
} catch (Exception e) {
e.printStackTrace();
}
}
Vielen Dank für eure Hilfe!