Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » JUnit AssertFalse(condition)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.04.2019, 10:18 Uhr
ITWorks4U



Machmal ist die Lösung so einfach, dass man einfach nicht daraf kommt, auch wenn es etwas sehr komisch klingt.

Anscheinend gibt es mit der Methode assertFalse(condition) nur die folgende Implementierung, dass der übergebene boolsche Flag ohne den Zusatz == false übergeben werden muss.

Sodass gilt: Assertions.assertFalse(validMove); //validMove ist auf false gesetzt

Genau dann kommt es auch zu keinen "Fehler" und die JUnit-Tests laufen mit Erfog.
--
Programmierrezepte frei Haus!

Dieser Post wurde am 29.04.2019 um 10:19 Uhr von ITWorks4U editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: