Hallo, ich brauche nochmal eure Hilfe,
in der Uni programmieren wir momentan als Klausurersatz ein 4-Gewinnt-Spiel auf der Konsole, das Interface und die Rückgabewerte der Methoden sind vorgegeben.
Nun sollen wir wenn möglich für alle Methoden des Interfaces einen jUnit-Test schreiben, was bei den meisten auch kein Problem ist.
Zu meiner Frage: Meine Methode um einen Spielzug auszuführen hat void als Rückgabewert, kann ich diese Methode trotzdem irgendwie testen? Ich hatte überlegt vielleicht das veränderte Array des Spiels irgendwie zu testen mit AssertArrayEquals, aber das testet ja nur 2 Arrays auf Gleichheit.
Hier meine Methode für einen Spielzug:
Also meine Überlegung wäre jetzt mit ein paar Aufrufen von makeMove für mein Board ein paar Züge zu machen und dann irgendwie das entstehende Array als erwartetes Ergebnis zurückzugeben, habe es aber wie gesagt noch nicht hinbekommen.
Vielleicht habt ihr ja da eine Idee
in der Uni programmieren wir momentan als Klausurersatz ein 4-Gewinnt-Spiel auf der Konsole, das Interface und die Rückgabewerte der Methoden sind vorgegeben.
Nun sollen wir wenn möglich für alle Methoden des Interfaces einen jUnit-Test schreiben, was bei den meisten auch kein Problem ist.
Zu meiner Frage: Meine Methode um einen Spielzug auszuführen hat void als Rückgabewert, kann ich diese Methode trotzdem irgendwie testen? Ich hatte überlegt vielleicht das veränderte Array des Spiels irgendwie zu testen mit AssertArrayEquals, aber das testet ja nur 2 Arrays auf Gleichheit.
Hier meine Methode für einen Spielzug:
Java:
/**
* Mit dieser Methode führt der Spieler einen Zug aus
* @param column Gewählte Spalte zum "Einwerfen" des Spielsteins
*/
public void makeMove(int column, int player) {
int row = 5;
for (; row >= 0 && gameBoard[column][row] != 0; row--) {
}
if (isMoveValid(column) != -1) {
gameBoard[column][row] = player;
history.add(column);
if (player == 1) {
player = 2;
} else {
player = 1;
}
}
}
Also meine Überlegung wäre jetzt mit ein paar Aufrufen von makeMove für mein Board ein paar Züge zu machen und dann irgendwie das entstehende Array als erwartetes Ergebnis zurückzugeben, habe es aber wie gesagt noch nicht hinbekommen.
Vielleicht habt ihr ja da eine Idee