anhang:unittests:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anhang:unittests:start [2024/12/09 15:23] – [JUnit] Martin Pabst | anhang:unittests:start [2025/04/09 09:00] (aktuell) – [Aufgabe 1] Martin Pabst | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
**Test driven development** \\ | **Test driven development** \\ | ||
- | Beim **test driven development** schreibt man ausgehend von einer Anforderung einen unit tests der Überprüft, ob das Programm dieser Anforderung genügt. Dann erst wird das Programm so erweitert/ | + | Beim **test driven development** schreibt man ausgehend von einer Anforderung einen unit tests der überprüft, ob das Programm dieser Anforderung genügt. Dann erst wird das Programm so erweitert/ |
</ | </ | ||
Zeile 23: | Zeile 23: | ||
* **void** zurückliefern und | * **void** zurückliefern und | ||
* mit '' | * mit '' | ||
- | Innerhalt | + | Innerhalb |
< | < | ||
assertEquals(expected, | assertEquals(expected, | ||
Zeile 73: | Zeile 73: | ||
return f; | return f; | ||
} | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Aufgabe 1 ===== | ||
+ | Gegeben ist die Klasse TicTacToeModel (s.u.). | ||
+ | * a) Versehen Sie jede Methode mit einem aussagekräftigen JavaDoc-Kommentar. | ||
+ | * b) Schreiben Sie eine Test-Klasse '' | ||
+ | * c) Vereinfachen Sie die Methode '' | ||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | <script type=" | ||
+ | |||
+ | </ | ||
+ | <script type=" | ||
+ | class TicTacToeModel { | ||
+ | /** | ||
+ | * die Werte der Spielfelder haben folgende Bedeutung: | ||
+ | * 1: Kreuz | ||
+ | * 0: Feld unbesetzt | ||
+ | * 2: Kreis | ||
+ | */ | ||
+ | | ||
+ | |||
+ | /** | ||
+ | * Wer ist als nächstes am Zug? | ||
+ | * 1: Kreuz | ||
+ | * 2: Kreis | ||
+ | */ | ||
+ | | ||
+ | |||
+ | | ||
+ | reset(); | ||
+ | } | ||
+ | |||
+ | | ||
+ | for (int column = 0; column < 3; column++) { | ||
+ | for (int row = 0; row < 3; row++) { | ||
+ | board[column][row] = 0; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int getNextPlayer() { | ||
+ | return nextPlayer; | ||
+ | } | ||
+ | |||
+ | | ||
+ | checkCoordinates(column, | ||
+ | return board[column][row]; | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(column < 0 || column > 2 || row < 0 || row > 2) { | ||
+ | throw new RuntimeException(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | | ||
+ | checkCoordinates(column, | ||
+ | if(board[column][row] != 0) { | ||
+ | throw new RuntimeException(" | ||
+ | } | ||
+ | board[column][row] = nextPlayer; | ||
+ | nextPlayer = 3 - nextPlayer; | ||
+ | } | ||
+ | |||
+ | int getWinner() { | ||
+ | for (int column = 0; column < 3; column++) { | ||
+ | int product = board[column][0] * board[column][1] * board[column][2]; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | for (int row = 0; row < 3; row++) { | ||
+ | int product = board[0][row] * board[1][row] * board[2][row]; | ||
+ | | ||
+ | | ||
+ | } | ||
+ | int product1 = 1; | ||
+ | int product2 = 1; | ||
+ | for (int i = 0; i < 3; i++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | if(product1 == 1) return 1; | ||
+ | if(product1 == 8) return 2; | ||
+ | if(product2 == 1) return 1; | ||
+ | if(product2 == 8) return 2; | ||
+ | return 0; | ||
+ | } | ||
+ | |||
} | } | ||
</ | </ |
anhang/unittests/start.1733757822.txt.gz · Zuletzt geändert: 2024/12/09 15:23 von Martin Pabst