000
29.04.2019, 09:22 Uhr
ITWorks4U
|
Moinsen, ich habe mal eine einfach, verständliche Frage. Ich habe da gerade nicht den passenden Durchblick in Sachen Verständnis bei dessen Durchführung.
Ich arbeite sehr oft mit JUnit, in dem Fall mit JUnit 5, um Methoden und komplette Klassen auf Herz und Nieren zu überprüfen. In dem Fall arbeite ich an einem Projekt für ein Schachspiel. Ohne auf spezifischere Details eingehen zu wollen, wird in der unten stehenden Methode überprüft, ob eine Dame von D8 nach H8 ziehen kann, während dessen auf G8 eine Figur steht. Der Variable "validMove" wird aufgrund der Methode onFreeAreas() false zugewiesen, da es nicht möglich ist mit der Dame über eine Figur zu springen.
C++: |
@Test public void testOnFreeAreasBlocked() { final Coordinates coord_S = this.tmpQueen.getLocation(); final Coordinates coord_D = new Coordinates("H8"); final boolean validMove = Matrix.INSTANCE.onFreeAreas(this.tmpQueen, coord_S, coord_D);
Assertions.assertFalse(validMove == false); }
|
Nun zu dem "Problem": Die Klassenmethode assertFalse von Assertions (JUnit) erwartet als Parameter einen falschen Wert, sodass der Vergleich zwischen validMove(false) und false dann wiederum wahr ist. Aber hier meldet JUnit, dass es hier zu einem AssertionFailedError kommt.
Kann einer von Euch erkennen, was da schief läuft?
Mit der Vergleichsmethode assertTrue(condition) kommt logischerweise es ebenfalls zu einer AssertionFailedError, da der übergebene Wert wahr sein soll. Von daher kann dies ausgeschlossen werden.
-- Programmierrezepte frei Haus! Dieser Post wurde am 29.04.2019 um 10:19 Uhr von ITWorks4U editiert. |