Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Kleinkram zu JUnit

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Helsinki
    Beiträge
    154

    Kleinkram zu JUnit

    Moin,

    ich hab' ein paar Kleinigkeiten zu JUnit (ich nutze Version 4.3.1) auf dem Herzen:

    Wohin mit den JUnit-Tests?

    Wo organisiert ihr eure Testklassen? Ich selbst hab' die ganzen Tests im Moment in separaten Packages zusammengefasst aber auf der JUnit-Homepage wurde das genaue Gegenteil empfohlen, also die Testklassen mit in die Packages zu packen, in denen sich auch die zu testenden Klassen befinden. Letzteres erlaubt zwar unter Umständen White-Box-Tests, aber ich teste nur die schwarze Kiste, also zählt das Argument für mich nicht.
    Gibt's da für euch irgendwelche anderen Killerargumente, warum man lieber den einen oder den anderen Weg wählen sollte?

    Was ist aus dem GUI-Runner geworden?

    Ich erinnere mich dunkel, dass es früher mal eine Swing-GUI gab, die mit JUnit zusammen ausgeliefert wurde. Ich weiß jetzt gar nicht, ob ich das jemals selbst ausprobiert habe, aber auch in alten Tutorials finden sich noch Hinweise auf eine entsprechende GUI.
    Weiß irgendwer zufällig, was daraus geworden ist, im neuesten JUnit gibt's die nämlich nicht mehr...

    So long,
    Liberty
    Friedliebender Soldat im ganz persönlichen Auslandseinsatz

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    In meinen Projekten mache ich es meistens so, dass ich ein zweites Verzeichnis für die Tests mache, in diesem aber die Paketstruktur nochmal genau abbilde. Das hatte bislang für mich aber eher "ordnungs Gründe". So habe ich schneller einen überblick, was die Datei testet, halte aber Testcode und eigentliche Programmlogik auseinander. Einen wirklich fundierten Grund hierfür kann ich aber nicht nennen.

    Was mit der GUI ist weiß ich nicht, da ich seit je her Eclipse nutze, welches mit einer entsprechenden JUnit GUI daher kommt.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  3. #3
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Wir benutzen in der Firma maven2 und das gibt folgende Verzeichnisstruktur vor (ja die kann man auch ändern, das will man aber besser nicht):

    src/main/java - Java Dateien
    src/main/resources - config files, z.B. properties etc.
    src/test/java - unit tests
    src/test/resources - config dateien für die tests

    in src/test/java bilden wir dann die ganze Package-Hierarchie wieder ab, wobei die erste Ebene dann Test ist.

    Bsp.: Klasse: com.something.foo.Bar.java
    Tests: test.com.something.foo.TestBar.java


    Zum Thema GUI: Nimm eclipse, das hat ein gutes Frontend für Junit

    HTH

    fs111
    ....::::Mein Blag::::....

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Helsinki
    Beiträge
    154

    Lightbulb

    Moin,

    @mehlvogel:
    Die Idee mit der doppelten Verzeichnisstruktur ist gar nicht doof, den Ansatz werde ich morgen gleich mal umsetzen, denn so kann ich die Testcases in die gleichen Packages packen und trotzdem sauber Testcode von normalem Sourcecode trennen. Das vereinfacht auch den Build-Prozess (bei mir mit Ant) enorm, da spare ich mir ja auch das ganze Abtrennen der Tests durch irgendwelche includes/excludes, sehr gut...
    Danke, auf die Lösung bin ich einfach nicht von selbst gekommen

    @fs111:
    So auf den ersten Blick wird mir der Sinn dieser von maven2 vorgegebenen Verzeichnisstruktur nicht wirklich klar, aber dafür kenn ich mich mit maven auch nicht aus.
    Und tu mir bitte einen Gefallen und erwähne nie wieder in meiner Gegenwart das Wort "Eclipse". Hat jetzt nichts mit Dir zu tun, aber in meinem Umfeld (Uni) benutzt mindestens jeder zweite Eclipse als Entschuldigung warum er keinen blassen Schimmer von Java hat, da kommen Kommilitonen mit irgendwelchen tollen Riesenprojekten an und sind völlig hilflos, wenn sie dann das ganze ohne ihr schön zu Hause eingerichtetes Eclipse zum Laufen bringen sollen und seit selbst mein Projektbetreuer meinte, er müsste von Ant noch nie gehört haben und nicht mal wusste, dass JUnit nicht in erster Linie ein Plugin für Eclipse ist, verkörpert Eclipse für mich den Krückstock derer, die von Java eigentlich keine Ahnung haben, sorry. Dass das auf die freie Wirtschaft nicht zutrifft, weiß ich auch und ich gehe mal davon aus, dass Du auch ohne Eclipse und maven direkt mit Konsolenprogrammen des JDK umgehen kannst, aber ich bin hier echt ein gebranntes Kind, hier laufen zu viele (wahrscheinlich sind's in Wirklichkeit nur sehr wenige, die dafür umso mehr auffallen) Dödel rum, die mit Eclipse ihre Unkenntnis rechtfertigen wollen.
    Darüber hinaus finde ich Eclipse etwas überladen (und das sagt jemand, der für die .NET-Entwicklung das komplette BDS'06 installiert hat ;-) ), aber gerade bei Java schreibe ich den Code viel schneller direkt in einem 08/15-Editor runter, wenn ich nicht alle paar Meter so eine Dialogbox ausfüllen soll und irgendwelche Klassennamen und -pfade fein säuberlich einzeln in irgendwelche Edit-Felder eintragen muss.
    Das ist aber wirklich eine reine Geschmacksfrage und wahrscheinlich würde ich mich mit der Zeit auch an Eclipse gewöhnen, aber im Moment sehe ich echt die Vorteile für mich nicht.

    Ich habe das Problem einer fehlenden GUI übrigens mittlerweile dadurch umgangen, dass ich die Testergebnisse mit Hilfe von JUnit PDF Report automatisch in ein PDF umsetzen lasse, das funktioniert sehr gut.

    So long,
    Liberty

    P.S.:
    Wo wir hier gerade so nett beisammen sitzen... :-)
    Ich gehe mal davon aus, dass ihr eure Anwendungen ohne die Tests ausliefert, oder? Ich frag' so blöd, weil das meiste Material auf der JUnit-Homepage suggeriert, dass Test und Anwendung so eng miteinander verknüpft sind, dass man die Tests als Teil der Anwendung mit ausliefern könnte oder sollte.
    Friedliebender Soldat im ganz persönlichen Auslandseinsatz

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Ich glaube das hängt damit zusammen, das JUnit von Erich Gamma (als SUnit nicht für Java) und Kent Beck (das eigentliche JUnit) entwickelt wurde und Kent Beck zudem Mitbegründer dieser XP (Extreme Programming) Bewegung ist, die ja dieses Verfahren vorschlägt. Ich selbst teste viel zu wenig (wenigstens habe ich den Fehler eingesehen ) mit solchen Testframeworks. Ich liefer, wenn solche Tests exisitieren diese meist mit aus, allerdings sind meine Erfahrung da bislang auch nur Erfahrungen von der Uni (sprich Abgaben von irgendwelchen Praktika und dergleichen). In der Wirtschaft würde ich wahrscheinlich auch die Tests, wenn es nicht explizit gefordert ist, nicht mit ausliefern.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  6. #6
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Helsinki
    Beiträge
    154

    Thumbs up Eine echte Verbesserung!

    Moin!

    @mehlvogel: Also manchmal beschleicht mich das Gefül, dass auch die JUnit-Jünger hin und wieder in den Bereich abdriften, in dem die Methodik wichtiger wird als das Ergebnis Aber mir kann's egal sein und JUnit an sich ist schon genial, das kann ich nicht anders sagen.
    Egal, ich hab' jetzt jedenfalls mein Projekt so umgestellt, wie Du es vorgeschlagen hast, also mit den zwei kompletten Verzeichnisbäumen und den Testklassen in den gleichen Packages wie das Testobjekt und das hat echt einiges gebracht, alles ist es jetzt übersichtlicher und damit auch einfacher zu handhaben. Danke, wenn ich das Projekt nicht schon N. gewidmet hätte, wärst Du hiermit ein echter Kandidat

    So long,
    Liberty
    Friedliebender Soldat im ganz persönlichen Auslandseinsatz

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •