Wie mache ich einen UnitTest?

Nico1999

Aktives Mitglied
hi ich habe mal versucht einen UnitTest in Eclipse zu machen zu folgender Methode
Java:
public class Figur{
    public boolean isFigurWhite(){
        return this.farbe==Farbe.WHITE;
    }
}
und das was dann rausgekommen is wo ich das TestFile gemacht habe ist
Java:
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class FeldIsFigurWhite {

    @Test
    void test() {
        fail("Not yet implemented");
    }

}
allerdings ist da jetzt alles unterstrichen also wie macht man das den jetzt?
 

Jw456

Top Contributor
wenn du in Eclipse bist soltte das schon vorhanden sein.
gehe links auf dein Package dann rechts Klick und "JUnit Test Case" auswählen

 
Zuletzt bearbeitet:

Nico1999

Aktives Mitglied
sry aber funktiert immer noch nicht
Java:
import static org.junit.jupiter.api.Assertions.*;
// wenn ich hier die imports machen will die morpheus gemacht hat verschwinden die einfach wieder
class FeldTest {

    @Test
    void testIsFigurWhite() {
        assertEquals//das ist immernoch unterstrichen und ich hab keine ahnung warum            
    }
}
 

Neumi5694

Top Contributor
Und in den Tips steht das "warum" normalerweise.
So wie's steht, kanns auch nicht funktionieren. Du wirst der Methode schon ein paar Parameter mitgeben müssen.

Die Klasse wird ja gefunden, sonst würden sich Compiler oder IDE schon beim Import aufregen.
Probier mal, die Klasse zu importieren und nicht deren statische Methoden und dann Assertions.assertEquals aufzurufen.
 

Jw456

Top Contributor
Java:
import static org.junit.jupiter.api.Assertions.*;
Ist das richtig ?

ich würde sagen
Java:
import static org.junit.Assert.*;

wenn du "jupiter.api" benuzt wirst du das auch in den "dependency" hinzugefügen müssen
 

thecain

Top Contributor
Durch das Testen der "businesslogik" sollte. Die Getter und Komstruktoren mitgetestet werden. Wenn nicht, scheinen sie überflüssig zu sein.
 

Nico1999

Aktives Mitglied
wie kann man den private Methoden testen ?
oder muss man die dann fürs Testen einfach public machen ?
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Oft ist eine private Methode ein Zeichen, dass du die Klassen nicht gut 'geschnitten' hast. Du scheinst ein Verhalten in der Klasse zu implementieren, das nicht in die Klasse gehört und daher intern ist. Das kann also in eine eigene Klasse gehören.

Wenn du Dir etwas Komplexes ansiehst, wie z.B. ein Auto. Du hast von außen nur etwas wie Blinker rechts ein als Interface.
Intern macht das Auto dann etwas wie Lampen an und aus zu schalten. Das könnte man in einer private Methode haben. Aber das ist ein Verhalten nicht vom Auto. Statt dessen hast du ein Steuergerät, dass dies macht. Auto hat also ein Steuergerät. Das Steuergerät hat aber genau dieses Verhalten nach außen und du kannst es testen. War das an der Stelle erst einmal anschaulich?

Um ein Gefühl zu bekommen macht es als Übung auf jeden Fall Sinn, sich TDD anzusehen. Test Driven Development schreibt immer zuerst Tests und so kann man gar nicht in das Problem kommen, dass man ein Verhalten hat, dass nicht getestet wurde. Dazu gibt es hier im Forum (mindestens) zwei Beispiele: FizzBizz und ein Graphen Beispiel. Aber generell ist die Empfehlung wohl das Buch von Kent Beck: Test Driven Development by example.

Und eine Möglichkeit kann es ggf auch geben: package private - dann haben nur Klassen im gleichen Package Zugriff. Bricht aber die Kapselung. Daher so wie @thecain: Die Methoden wurden entweder mitgetestet oder man sollte da ein Refactoring machen.

Edit: Typos, die ich jetzt am Rechner sehe.
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Da ich ein Beispiel für ein mögliches Refactoring gegeben habe, möchte ich auch ein Gegenbeispiel nennen:
Private Methoden entstehen sehr oft auch durch Refactorings. Das Refactoring für doppelten Code muss man nur anschauen:
Du schreibst eine doppelt verkettete Liste. Das Listenelement ist eine innere Klasse. Und Du hast eine Methode, um ein Element vor ein vorhandenes Element hinzu zu fügen:
- Du gehst bis zu dem Element vor dem eingefügt werden soll.
- Du fügst vor dem Element ein

Nun kommt die Methode, die nach einem vorhandenen Element einfügt:
- Du gehst bis zu dem Element, nach dem eingefügt werden soll.
- Du fügst nach dem Element ein.

==> Suchen eines Elementes ist damit doppelt und das kommt in eine eigene Methode. Diese ist natürlich spezifisch für die Liste. Da kann man (aus meiner Sicht jetzt) keine neue Klasse entwerfen, die dies dann als Verhalten bekommen kann.

Das also nur kurz zum Aufzeigen, dass das oben genannte also nichts ist, wo man mit der Brechstange ansetzen muss um dann dass Buch 1001 Nacht Klassen zu schreiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Wie mache ich den rekursiven Aufruf in IJVM Allgemeine Java-Themen 3
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
R Sting.split() was mache ich falsch? Allgemeine Java-Themen 5
J Wie mache ich den Hintergrund einer Image durchsichtig? Allgemeine Java-Themen 7
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
Robert Zenz Ich brauche bitte mal kurz einen Sanity/Reality-Check betreffend Tests. Allgemeine Java-Themen 9
R Wie gestaltet man einen Authentifizierungsflow? Allgemeine Java-Themen 6
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
D Klassendesign für einen Pascal Interpreter Allgemeine Java-Themen 6
Jose05 Gibt es einen Nachteil bei dem JDK 8? Allgemeine Java-Themen 7
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
O Warum kann ich so keine Elemente löschen und erhalte einen IllegalStateException? Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
N Validator für einen SQL-Befehl Allgemeine Java-Themen 22
ZH1896ZH Best Practice Wie erstellt man am besten einen Kalender? Allgemeine Java-Themen 3
R Java Stream: Ist es möglich, einen stream zusammenzufassen Allgemeine Java-Themen 6
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
W Haben Konstruktoren in Java eigentlich immer mindestens einen Parameter? Allgemeine Java-Themen 4
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
A Mithilfe von einer Nummer einen Namen finden n-Beziehung Allgemeine Java-Themen 8
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
MoxxiManagarm Ich brauche einen smarten Ansatz Allgemeine Java-Themen 23
J Gebautes Jar per Maven in einen Docker Container kopieren Allgemeine Java-Themen 0
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
E Einen Bot Programmieren. Allgemeine Java-Themen 6
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
P [Webdriver] einen Datensatz signieren Allgemeine Java-Themen 0
R MAC-Adresse eindeutig für einen PC ? Bezug zu Netzwerk, wieso ? Allgemeine Java-Themen 7
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
S Input/Output Beste Möglichkeit einen String in einen Datei zu Schreiben Allgemeine Java-Themen 2
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
L Wie programmiert man einen Listener? Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
Thallius Wie convertiere ich einen pkcs8 key in einen java lesbaren? Allgemeine Java-Themen 16
M Was braucht man, um einen Java Job zu bekommen? Allgemeine Java-Themen 8
G Substrings in einen String zusammenfassen Allgemeine Java-Themen 5
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
P Zum src Ordner einen Projektes navigieren Allgemeine Java-Themen 8
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
MaxG. Swing Wie kann man einen Dateiordner auswählen ? Allgemeine Java-Themen 3
D Kopieren von Dateien aus einem Ordner in einen anderen Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
S Einen Punkt um den Ursprung drehen Allgemeine Java-Themen 5
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
M Genaues Bugtracking - jemand einen Vorschlag? Allgemeine Java-Themen 14
L Gibt es in Java einen Property Editor? Allgemeine Java-Themen 2
S Einen übergebenen String kopieren Allgemeine Java-Themen 3
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
L Wie kann ich einen Keystore aus existierenden Zertifikaten erstellen? Allgemeine Java-Themen 1
P Vectorelemente in einen anderen Vector kopieren Allgemeine Java-Themen 12
U in java an einen Rückgabewert aus matlab rankommen Allgemeine Java-Themen 2
B einen color-chooser bauen, ähnliche Farben vermeiden Allgemeine Java-Themen 5
B .txt Datei in einen kompletten String konvertieren Allgemeine Java-Themen 20
H Gibt es einen großen Unterschied zwischen Java 6 und Java 7? Allgemeine Java-Themen 3
M String in einen 2D array bringen Allgemeine Java-Themen 2
Y Prüfen ob ein Graph immer einen von mehren Enden erreicht Allgemeine Java-Themen 4
J (Java3D) Einen Faden programmieren - Logikproblem Allgemeine Java-Themen 5
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
Rudolf In wie fern lohnt sich C++ für einen Javaentwickler Allgemeine Java-Themen 70
A Welches Speichermanagement für einen Kalkulator Allgemeine Java-Themen 7
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
J String-Typ in einen generischen Typ T umwandeln Allgemeine Java-Themen 6
S RandomAcessFile das einen InputStream wrappt..? Allgemeine Java-Themen 2
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
H Wie erzeugt man einen Daemon? Allgemeine Java-Themen 7
S Wie beendet man einen Process in Java Platform unabhänging? Allgemeine Java-Themen 8
Z Threads Thread für einen Client Allgemeine Java-Themen 9
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
S MANIFEST DATEI hat nur einen Eintrag Allgemeine Java-Themen 14
M Einen Prozess "crashen" lassen Allgemeine Java-Themen 9
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
U Wie kann mit einen Java Applet Dateien erstellen,verschieben und löschen? Allgemeine Java-Themen 9
C Argument an einen Thread übergeben Allgemeine Java-Themen 4
A Framework für einen Web Service Allgemeine Java-Themen 6
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
S regex für einen Link Allgemeine Java-Themen 3
M Client für einen Webservice erstellen (ONVIF) Allgemeine Java-Themen 3
T Undwandlung eines String in einen InputStream? Allgemeine Java-Themen 3
M Selbst geschriebener InputStreamReader über einen beliebigen InputStream Allgemeine Java-Themen 4
P Datei in einen String lesen Probleme bei Codierung Allgemeine Java-Themen 2
H SwingWorker statt Thread für einen Server Allgemeine Java-Themen 2
G einen Thread beim Schlafen überraschen und abschießen Allgemeine Java-Themen 3
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben