Was ist JUnit?
cherami
JUnit ist ein Open Source Java Test-Framework zum Schreiben und Ausführen wiederholbare Tests.Er ist ein System von xUnit Unit Testing Framework für eine Instanz (für die Programmiersprache Java).Es umfasst die folgenden Features:
1, für die Prüfung erwarteten Ergebnisse der Behauptung (Assertion)
2, für die gemeinsame Testdaten Testwerkzeuge
3, für die Bequemlichkeit der Organisation und den Betrieb der Test-Suite-Tests
4, Grafiken und Text Testrunner
JUnit wurde ursprünglich von Erich Gamma (GoF One) und Kent Beck (XP und einer der Pioniere Refactoring) vorbereitet entwickelt.
Darauf hingewiesen, dass JUnit allgemein für Unit-Tests verwendet werden, und müssen daher auf die interne Struktur des Codes getestet (sog. White-Box-Test) zu verstehen, das andere ist xp junit Programmierung und Refactoring (Refactoring) wurde dringend empfohlenWerkzeuge, automatische Unit-Tests, weil die Umstände kann stark steigern die Effizienz der Entwicklung, aber in Wirklichkeit ist schriftlich Testcode braucht viel Zeit und Mühe, dann die Vorteile der Verwendung dieses Zeug Wo ist es?Ich glaube, dass ist diese:
1, für XP-Programmierung, fordert die das Schreiben von Tests vor dem Schreiben von Code, die Sie zwingen, um vernünftig zu denken, bevor das Schreiben des Codes im Code (Methoden) der Funktion und Logik, oder schreiben Sie den Code nicht stabil ist, dann müssen Sie unter Beibehaltung derTestcode und der eigentliche Code, wird dieser Aufwand deutlich erhöhen.Daher wird in xp Programmierung ist der grundlegende Prozess: die Idee - "schreiben Testcode -", um Code zu schreiben - "Test, und das Schreiben von Tests und das Schreiben von Code sind inkrementell und schreibe einen kleinen Test, dass Code in der Vorbereitung künftigerWenn Probleme festgestellt werden mehrere Blöcke, um das Problem zurückgeführt werden kann, reduzieren Sie die Schwierigkeit der Korrektur der Fehler zurück
2, für den Wiederaufbau, seine Vorteile und XP Programmierung ähnlich, da auch die Rekonstruktion erforderlich ist, um einen kleinen Test, weniger zeitaufwendig aufgrund von Fehlern wieder ändern.
3, für Nicht-über zwei Situationen, wenn wir den angemessenen Gebrauch von JUnit-Test schreiben zu entwickeln, ist notwendig, weil die allgemeine Test brauchen wir auch Code schreiben, können Sie nicht die Original JUnit, wenn Sie mit JUnit sind, sondern auch gegenInterface (Methoden) zur Herstellung von Test-Code wird zukünftig Wartungsarbeiten, wie Veränderungen innerhalb der Methode nach zu reduzieren (das entspricht Umbauarbeiten.)Junit Behauptung, denn es gibt eine weitere Funktion, wenn die Testergebnisse nicht den Test wird uns sagen, dass dies nicht passieren, warum, und ob die bisherigen allgemeinen Praxis ist, schreiben Sie einige Test-Code ist an ihrem Ausgang suchen, und dann selbst bestimmen, die Ergebnisse mit den richtigenmit JUnit Vorteil ist, dass dieses Ergebnis richtig zu beurteilen, es fertig ist, brauchen wir nur um es zu betrachten das Recht, uns zu sagen, ob die Ergebnisse können in der Regel deutlich verbessern soll Effizienz.
JUnit Erste Schritte
cherami bestellen
Installieren JUnit
Die Installation ist sehr einfach, zuerst die folgende Adresse, um eine neue Zip-Paket herunterladen:
http://download.sourceforge.net/junit/
Nach heruntergeladen, um Ihre Lieblings-Verzeichnis zu extrahieren, ist die Annahme, JUNIT_HOME, dann JUNIT_HOME junit.jar unter dem Paket hinzugefügt, um Ihr System Umgebungsvariable CLASSPATH für die IDE-Umgebung, die Notwendigkeit einer verstärkten Nutzung des JUnit-Projektlib, haben ihren verschiedenen IDE-Einstellungen verschiedene Einstellungen, wo nicht viel zu sagen.
Wie benutzt man JUnit Tests schreiben?
Das einfachste Beispiel:
1, eine Unterklasse von TestCase:
Paket junitfaq;
import java.util .*;
Import junit.framework .*;
public class SimpleTest extends TestCase {
öffentlichen SimpleTest (String name) {
super (name);
}
2, schreiben Sie eine Testmethode behaupten die erwarteten Ergebnisse:
public void testEmptyCollection () {
Collection Sammlung = new ArrayList ();
assertTrue (collection.isEmpty ());
}
Hinweis: JUnit-Test Ansatz wird als Beginn des Verfahrens geprüft werden, so dass diese Methoden automatisch durch Überprüfung gefunden werden empfohlen.
3, schreiben Sie eine suite ()-Methode, die Reflexion verwendet, um dynamisch eine Methode erstellen, die alle testXxxx Testpaket enthält:
public static Test suite () {
return new TestSuite (SimpleTest.class);
}
4, schreiben Sie eine main ()-Methode, um den Text-Modus-Gerät für den Betrieb des Tests erleichtern ausführen:
public static void main (String args []) {
junit.textui.TestRunner.run (suite ());
}
}
5, führen Sie den Test:
Führen Sie im Text-Modus:
java junitfaq.SimpleTest
Durch die Testergebnisse sind:
.
Zeit: 0
OK (1 Tests)
Zeit, sagte der Test auf die Zahl der kleinen Punkte, und wenn die Prüfung ergibt, OK.Andernfalls wird in der kleinen Punkt hinter den markierten F, die den Test nicht bestanden.
Jeder der Testergebnisse sollten in Ordnung sein, so um den Test zu erklären, ist erfolgreich, wenn erfolglos die Informationen sofort folgen wird die überarbeitete Anweisungen.
JUnit-Test-Bericht, wenn nicht erfolgreich, wird es zwischen Ausfällen (Ausfälle) und Fehler (Fehler) zu unterscheiden.Scheitern ist der Code in Ihre Methode scheitert behaupten, und der Fehler wird durch abnorme Code, z. B. ArrayIndexOutOfBoundsException verursacht.
Grafisch ausführen:
java junit.swingui.TestRunner junitfaq.SimpleTest
Die Testergebnisse über die grafische Oberfläche des grünen Balkens in Teilen.
Dies sind die einfachen Probe, dem eigentlichen Test, testen wir die Funktion einer Klasse ist oft notwendig, einige gemeinsame Operationen durchführen, die nach Abschluss der Zerstörung der benötigten Ressourcen (wie zB Netzwerkverbindungen, Datenbankverbindungen, offene Dateien zu schließenetc.), sieht Klasse TestCase uns mit einem Setup-Verfahren und Methoden tearDown, Setup-Methode, um Ihre Inhalte in die Vorbereitung der TestCase Unterklasse Methode vor jedem testXxxx läuft testen und tearDown Methoden der Inhalt nach dem Ende der jeweiligen Methode wird ausgeführt testXxxx werden.Die gemeinsame Initialisierungscode nur, sondern eliminiert auch das Potential zwischen den einzelnen Test-Code Interaktion.
JUnit Best Practices
Martin Fowler sagte: "Wenn Sie zum Ausdrucken einige Informationen oder zur Fehlersuche Ausdruck versuchen, schreiben Sie einige Test-Code, um die traditionellen Methoden zu ersetzen." Anfangs werden Sie feststellen, dass Sie immer ein paar neue Möbel zu schaffen, und die PrüfungProgrammierung scheint Ihnen zu verlangsamen.Bald darauf werden Sie aber feststellen, dass Sie die gleichen Möbel zu wiederholen, und der neue Test ist in der Regel nur durch die Aufnahme einer neuen Testmethode.
Sie können schreiben Sie eine Menge von Test-Code, aber man bald feststellen, dass Sie nur einen kleinen Teil des Tests ist sehr nützlich vorstellen.Sie müssen sich Test ist der Test, wird scheitern, dass Sie denken, wird es nicht versäumen diese Tests, oder denken Sie, sollten sie den Test der Erfolg scheitern.
Wie bereits erwähnt Testen ist ein Prozess ohne Unterbrechung.Sobald Sie einen Test, sollten Sie sicherstellen, dass ihre Arbeit wurde zu Ihrer Arbeit, indem neue Code zu testen.Führen Sie nicht alle paar Tage oder der letzten Testtag, sollten Sie diesen Test Code ausführen.Diese Investition ist sehr klein, aber sie kann dafür sorgen, dass Sie zuverlässig Code zu erhalten.Reduzieren Sie Ihre Quote Nacharbeit, haben Sie mehr Zeit zum Schreiben funktionierenden Code.
Denke nicht, dass der Druck, nicht schreiben Testcode.Stattdessen schreiben Testcode wird schrittweise reduzieren Sie Ihren Stress, sollten durch das Schreiben von Code getestet werden, haben Sie das genaue Verhalten der Klasse Verständnis.Sie werden schneller werden, um Code effizient arbeiten zu schreiben.
Hier sind einige spezifische Fähigkeiten schriftlich Testcode oder die guten Sitten:
1. Verwenden Sie nicht den TestCase Konstruktor initialisiert Möbel, sondern mit dem Setup () und tearDown ()-Methode.
2. Setzen Sie nicht auf oder nehmen an, dass die Reihenfolge der Test läuft, weil die JUnit-Methode mit Vector gespeichert.So verschieden Plattformen in einer anderen Reihenfolge, entfernen Sie aus dem Vector Prüfverfahren.
3. Um die Nebenwirkungen der Vorbereitung eines TestCase.Zum Beispiel: Wenn nachfolgenden Tests hängt von der spezifischen Transaktion Daten nicht vorlegen Transaktionsdaten.Will einfach rollen auf sie.
4. Beim Vererben einer Testklasse, vergessen Sie nicht die Superklasse setUp () und tearDown ()-Methode aufrufen.
5. Testet die Code-und Arbeitsbedingungen Code zusammen, während gleichzeitig kompilieren und zu aktualisieren.(Verwendung des JUnit Ant hatte, um die Aufgabe zu unterstützen.)
6. Testklassen und Testmethoden sollten ein einheitliches Namensschema für.Wenn die Arbeiterklasse Namen mit der Prüfung zur Bildung der Prüfung Klassenname.
7. Um sicherzustellen, dass der Test unabhängig von der Zeit ist, nicht auf veralteten Daten zum Testen verwendet verlassen.Resultierte in der anschließenden Wartung der Prozess ist schwierig, den Test zu reproduzieren.
8. Sie sind schriftlich Software für den internationalen Markt, um die Vorbereitung der Test prüfen, wenn die internationalen Faktoren.Native Gebietsschema nicht nur zum Testen.
9. So viel wie möglich auf die Verwendung von JUnit bieten zu behaupten / Fail-Methode und die Methode der Exception-Handling kann der Code übersichtlicher.
10. Der Test auf so klein wie möglich die Umsetzung der Geschwindigkeit.
Kombination von JUnit und Ant
cherami Links
Ameise stellt zwei Ziel: JUnit und junitreport
Führen Sie alle Testfälle generieren und HTML-formatierten Bericht
Dazu folgendes:
1. ANT_HOMElib Verzeichnis auf dem junit.jar
. 2 Ändern build.xml, fügen Sie die folgenden Schritte aus:
property name="report" value="report" / target name="junitreport" depends="clean, compile" junit printsummary = "on" Gabel = "true "haltonfailure =" false "failureproperty =" tests.failed "showoutput =" true " classpath refid="myclasspath"/ formatter type="xml"/ batchtest todir = "$ {report}" fileset dir="${build}" include name="**/*Test.*"/ /Dateigruppe / batchtest / junit junitreport todir="${report}" fileset dir="${report}" gehören name = "TEST-*. xml "/ / Dateigruppe report format="frames" todir="${report}"/ / junitreport scheitern, wenn =" tests.failed "; --------------------------------------------------------- Ein oder mehrere Tests fehlgeschlagen ist, überprüfen Sie den Bericht zum Detail ... --------------------------------------------------------- / Fail / target
Führen Sie dieses Ziel, wird jede Ameise laufen TestCase
Verzeichnis in dem Bericht gibt es eine Menge von TEST *. xml und einige Seiten
Öffnen Sie den Bericht direkt index.html Sie eine sehr intuitive Testlauf Berichte auf einen Blick sehen können.