ToString-Methode mit JUnit testen(BlueJ)

Volthex

Mitglied
Hallo,
ich habe ein Problem mit meiner aktuellen Aufgabe. Ich soll ein Programm mithilfe von JUnit testen. Bisher geht mir das auch ganz einfach von der Hand. Nur komme ich jetzt bei der ToString-Methode nicht mehr weiter.
Java:
public String toString() {
        if (size() == 0) {
            return "{}";
        }
        String result = "{";
        String separator = "";
        for (String elem : elements) {
            result += separator + elem;
            separator = ",";
        }
        result += "}";
        return result;
    }
Das ist der Code zur Methode. Jetzt habe ich folgendes für den Test gemacht, was leider nicht funktioniert. :(
Java:
@Test
    public void testToStringMethode()
    {
        StringSet stringSe1 = new StringSet();
        assertEquals(true, stringSe1.add("Test"));
        assertEquals(true, stringSe1.add("Test2"));
        assertEquals(true, stringSe1.add("Test3"));
        assertSame(elements, stringSe1.toString());
    }
Wie muss ich das ändern, damit der Test funktioniert?
 

fhoffmann

Top Contributor
"elements" ist doch anscheinend ein Member deiner Klasse StringSet. Darauf kannst du im Test nicht zugreifen (und willst es auch nicht). Die letze Zeile in deinem Test sollte möglicherweise lauten:
Java:
assertEquals("{Test,Test2,Test3}", stringSe1.toString());
Allerdings bin ich mir da nicht ganz sicher, da der Name "StringSet" suggeriert, dass die Reihenfolge der Elemente keine Rolle spielt (aber dann wird ein Test natürlich kompliziert).
 

Volthex

Mitglied
Danke erstmal für die Antwort. Der Test funktioniert auch soweit gut. Doch ich weiß nicht, wie man eine Intersect-Methode testen soll...
Java:
/**
     * Bestimmt die Schnittmenge mit einer anderen Menge. Die aktuelle Menge
     * ändert sich dabei nicht. Sollte die andere Menge den Wert {@code null}
     * haben, so wird als Resultat ebenfalls {@code null} zurückgegeben.
     * 
     * @param other Die andere Menge. Auch sie wird nicht verändert.
     * @return Eine neue Menge, die die Elemente der Schnittmenge der beiden
     * Mengen enthält oder {@code null}, falls die andere Menge den Wert 
     * {@code null} hat.
     */
    public StringSet intersect(final StringSet other) {
        if (other == null) {
            return null;
        }

        final StringSet findings = new StringSet();
        for (String string1 : elements){
            if (other.contains(string1)) {
                findings.add(string1);
            }
        }
        return findings;    
    }
Kann mir da auch jemand helfen?
 

mrBrown

Super-Moderator
Mitarbeiter
Erstell im Test zwei unterschiedliche Tests, bilde die Schnittmenge der beiden mit der Methode, und prüf dann, ob genau die Elemente drin sind, die auch drin sein sollten
 

Volthex

Mitglied
Also ich hab das jetzt so gemacht, aber es funktioniert nicht... Weil ich grade nicht weiß, wie du das mit zwei Tests meinst
Java:
@Test
    public void testSchnittmenge()
    {
        StringSet stringSe1 = new StringSet();
        assertEquals(true, stringSe1.add("a"));
        assertEquals(true, stringSe1.add("b"));
        assertEquals(true, stringSe1.add("c"));
        StringSet stringSe2 = new StringSet();
        assertEquals(true, stringSe2.add("b"));
        assertEquals(true, stringSe2.add("c"));
        assertEquals(true, stringSe2.add("d"));
        assertSame("{b,c}", stringSe1.intersect(stringSe2));
    }
 

stg

Top Contributor
Du vergleichst einen String mit einem StringSet...

mrbrown meinte nicht, dass du zwei Tests erstellen sollst, sondern zwei Sets (so, wie du es auch gemacht hast). Das war nur ein Schreibfehler.
 

Volthex

Mitglied
Mir ist auch gerade aufgefallen, dass man die StringSets nicht vergleichen kann... Ich muss ja irgendwie an die inhalte der Arrays kommen. Da bietet sich ja die ToString-Methode an. Doch wie kann ich das jetzt machen, dass man Schnittmenge vergleicht? Ich hab das jetzt soweit raus:
Java:
    @Test
    public void testSchnittmenge()
    {
        StringSet stringSe1 = new StringSet();
        assertEquals(true, stringSe1.add("a"));
        assertEquals(true, stringSe1.add("b"));
        assertEquals(true, stringSe1.add("c"));
        StringSet stringSe2 = new StringSet();
        assertEquals(true, stringSe2.add("b"));
        assertEquals(true, stringSe2.add("c"));
        assertEquals(true, stringSe2.add("d"));
        assertEquals("{a,b,c}", stringSe1.toString());
        assertEquals("{b,c,d}", stringSe2.toString());
    }
 

stg

Top Contributor
Zuletzt bearbeitet:

Volthex

Mitglied
Also ich habe mich vorhin mit einem Kumpel von mir unterhalten der auch Informatik studiert und er meinte das... Ich weiß aber leider grade nicht, wie ich eine equals-Methode auf StringSet anwenden soll...
 

stg

Top Contributor
Du schreibst Unit-Tests, aber weißt nicht, was eine equals-Methode ist?

(wir kennen deine Klasse StringSet übrigens nicht ... poste die doch einfach mal )
 

mrBrown

Super-Moderator
Mitarbeiter
Dein StringSet hat eine contains Methode, du kannst also für alle Elemente prüfen, ob sie auch wirklich drin sind.
Damit keine zusätzlichen drin sind dann noch die Größe überprüfen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Einrücken inner der toString()-Methode Java Basics - Anfänger-Themen 34
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
M Die Inhalte eines Arrays mit der Methode Arrays.toString ausgeben Java Basics - Anfänger-Themen 4
H toString-Methode Java Basics - Anfänger-Themen 24
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
J toString() Methode und ArrayList Java Basics - Anfänger-Themen 1
H Erste Schritte Arrayes.toString methode funktioniert nicht Java Basics - Anfänger-Themen 2
A Problem mit toString Methode Java Basics - Anfänger-Themen 8
T String toString methode nicht vererbt ... Java Basics - Anfänger-Themen 4
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
A ToString()-Methode richtig benutzen Java Basics - Anfänger-Themen 3
J Vererbung Überschriebene toString-Methode aufrufen Java Basics - Anfänger-Themen 10
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
B Methoden toString Methode mit Schlüsselwort new Java Basics - Anfänger-Themen 3
L toString()-Methode in verschieden Klassen Java Basics - Anfänger-Themen 3
R Frage zu statischer Methode toString() Java Basics - Anfänger-Themen 3
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
F toString Methode ausgeben Java Basics - Anfänger-Themen 3
S toString-Methode für Map Java Basics - Anfänger-Themen 15
L OOP hilfe bei tostring methode Java Basics - Anfänger-Themen 6
D Frage zum Aufruf einer toString-Methode Java Basics - Anfänger-Themen 2
V toString()-Methode Java Basics - Anfänger-Themen 9
S PrintWriter-Probleme mit toString Methode->Person@17182c1 Java Basics - Anfänger-Themen 10
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
W ArrayList und toString Java Basics - Anfänger-Themen 17
W toString bei composition Java Basics - Anfänger-Themen 4
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
M Polymorphie toString Java Basics - Anfänger-Themen 13
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
P falscher booleanwert bei toString Java Basics - Anfänger-Themen 4
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
J Methoden toString()-Date Formatter Java Basics - Anfänger-Themen 8
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
E Vererbung mit toString() Java Basics - Anfänger-Themen 6
O Referenz - toString Java Basics - Anfänger-Themen 9
B toString mit optionaler Ausgabe überrschreiben Java Basics - Anfänger-Themen 5
C Methoden toString Java Basics - Anfänger-Themen 4
B toString() Dilemma Java Basics - Anfänger-Themen 7
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
K array in toString des objektes ausgeben Java Basics - Anfänger-Themen 1
Psypsy hashCode, equals und toString Java Basics - Anfänger-Themen 3
K toString() Java Basics - Anfänger-Themen 1
I Vererbung toString() Frage Java Basics - Anfänger-Themen 5
E Richtige Ausgabe nur mit toString() - Warum? Java Basics - Anfänger-Themen 4
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
A JList / toString modify Java Basics - Anfänger-Themen 2
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M toString Java Basics - Anfänger-Themen 7
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
C Methoden String von einem toString() herauslesen Java Basics - Anfänger-Themen 2
B Wann toString() überschreiben? Java Basics - Anfänger-Themen 21
N .toString() und (string) Java Basics - Anfänger-Themen 2
S schwierigkeit mit in der verwaltungsklasse benutzen von toString() Java Basics - Anfänger-Themen 7
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
N Matrix an toString Java Basics - Anfänger-Themen 7
A Werteausgabe des Construktors mit toString Java Basics - Anfänger-Themen 2
D super.tostring Java Basics - Anfänger-Themen 8
A Stringarray toString Java Basics - Anfänger-Themen 5
S Escape Sequenz in der toString() ? Java Basics - Anfänger-Themen 4
A Arrays.asList(s).toString() ohne [] und , Java Basics - Anfänger-Themen 3
P toString Java Basics - Anfänger-Themen 4
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K toString Java Basics - Anfänger-Themen 10
A Object -> String mit valueOf, toString oder cast ? Java Basics - Anfänger-Themen 6
R getClass und getName sowie toString Java Basics - Anfänger-Themen 10
D Arrays.toString problem Java Basics - Anfänger-Themen 2
D array.toString() wieso funktioniert es nicht Java Basics - Anfänger-Themen 4
D toString überschreiben + Exception werfen Java Basics - Anfänger-Themen 3
H toString / println Java Basics - Anfänger-Themen 2
H toString() erben? Java Basics - Anfänger-Themen 3
A Arrays.toString() ohne [ und ] Java Basics - Anfänger-Themen 2
K Arrays.toString(); funktioniert nicht Java Basics - Anfänger-Themen 4
A byte.toString() -> Datenmüll Java Basics - Anfänger-Themen 52
K Problem mit .toString und FileReader Java Basics - Anfänger-Themen 2
G toString Problem Java Basics - Anfänger-Themen 12
G Gregorian Calendar aus toString() Ausgabe wiederherstellen Java Basics - Anfänger-Themen 4
T Warum Fehlermeldung bei diesem ToString Programm? Java Basics - Anfänger-Themen 2
B toString Java Basics - Anfänger-Themen 5
S Was macht [Integer.toString(number, tarRadix)] Java Basics - Anfänger-Themen 3
G Probleme bei toString Überschreibung Java Basics - Anfänger-Themen 6
M int toString Datentypen Umwandeln, AnfängerProblem Java Basics - Anfänger-Themen 3
T keine Ausgabe von toString obwohl keine Fehlermeldung Java Basics - Anfänger-Themen 5
D ToString Java Basics - Anfänger-Themen 3
C Bedeutung von toString im Bezug auf Text Java Basics - Anfänger-Themen 4
N char[] aus JPasswordField toString() Java Basics - Anfänger-Themen 6
T Boolean toString ? Java Basics - Anfänger-Themen 3
H toString(); varargs; bitSet Java Basics - Anfänger-Themen 8
M getClass() und getClass().toString() Java Basics - Anfänger-Themen 4
P Vektor toString? Java Basics - Anfänger-Themen 2
S valueOf() vs. toString() Verwendung??? Java Basics - Anfänger-Themen 13
G Frage zur toString ? Java Basics - Anfänger-Themen 4
L .toString wieder rückgängig machen Java Basics - Anfänger-Themen 7
H Was ist toString ??? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben