Frage

Obwohl ich mit Java für ungefähr 3 Jahre programmiert + jetzt (nicht von Tag zu Tag, aber zumindest verstehe ich die Grundlagen), nicht wirklich kommt in den Bereich der Unit Testing ...

Meine Arbeit ist jetzt mehr Testing / Problemanalyse orientiert, so dass ich eine gute Java Unit Testing Framework rechnen sein wird sehr hilfreich diese Rolle.

Offensichtlich gibt es keine formale Regel der Rahmen mit in meinem Team zu gehen. So frage mich nur, wie ein Anfänger, der Rahmen gut ist, um schnell loszulegen?

Junit?

TestNG?

oder etwas anderes?

Edit: es scheint, JUnit mehr Bücher gedruckt als Verweis auf TestNG auf Amazon verglichen. Aber ich weiß nicht, ihre Popularität / Trend in Java Industrie wie jetzt.

War es hilfreich?

Lösung

Ich bin der Schöpfer von TestNG und Autor des „Next Generation Testing“ Buch, so sind hier einige (offensichtlich voreingenommen) Gedanken.

Für funktionelle (oder einem zum anderen Ende / Integration / System, unabhängig von Begriff, den Sie bevorzugen) zu testen, TestNG bietet einige Funktionen, die JUnit haben nicht und dass die Nutzer sehr nützlich gefunden:

  • Gruppen. Sobald Sie Ihre Tests zusammengestellt haben, können Sie einfach TestNG bitten alle, die "Front-End" -Tests oder "schnell", "langsam", "Datenbank", etc ...

  • laufen
  • Unterstützung für Multi-Thread-Tests. Dies hat zwei verschiedene Bedeutungen:

1) Sie können TestNG sagen alle Ihre Tests gleichzeitig in Thread-Pools laufen, dass Sie (eine Zeile Änderung in einer XML-Datei) definieren. Dies ist sehr konfigurierbar, so dass Tests, die nicht multithreaded sind, können immer noch in einzelnen Threads ausgeführt werden.

2) Sie können TestNG sagen Ihre Testmethoden n-mal von p-Threads aufzurufen. Dies gibt Ihnen eine gute Vorstellung davon, wie die Threadsicherheit der Code, den Sie testen ist.

  • Test Abhängigkeiten und deterministische Reihenfolge. Dies ist sehr nützlich für Integrationstests, wo es sehr häufig Testmethoden, um zu sehen, die vor Testmethoden müssen um erfolgreich zu sein, bevor sie selbst ausführen kann. TestNG ist sehr beliebt in der Selen-Community für diesen speziellen Grund ( „nicht die Mühe Website Testen Sie diese Seite meiner Web, wenn der Login-Test nicht bestanden“).

Ein weiterer unmittelbarer Vorteil von Test Abhängigkeiten ist, dass TestNG können Ihnen sagen, „1-Methode versagt, 99 Methoden übersprungen“, die ein viel genaueres Ergebnis ist als „100 Methoden fehlgeschlagen“.

hat TestNG viele, viele weitere Features und ich bin glücklich zu beantworten Fragen hier oder auf unserer Mailing-Liste ( http://groups.google.com/group/testng-users ).

Andere Tipps

Ich würde lernen TestNG mit Unitils . Covered alle meine Bedürfnisse die ganze Zeit. In XMLUnit und DBUnit und Sie sollten für eine lange Zeit abgerechnet werden.

Um ehrlich zu sein ich JUnit ist viel populärer als TestNG, zumindest hier, wo ich und Live arbeiten. Ich weiß, das könnte ein seltsames Argument sein, aber wenn ich Sie wäre, würde ich durch einige Auftrag scannen fügt und sehen, welche Rahmen hat die Industrie in Ihrer Region / Land für (zum Beispiel ich für JUnit gehen aus diesem Grund, ich meine, sicher, ich könnte TestNG lernen, es könnte besser ausfallen, aber was würde es mir zu tun, wenn alle die Arbeitgeber JUnit Wissen erfordern?).

Auch wenn es scheinen mag ein kleines Kriterium zu sein, ceteris equals, sieht es aus wie Job Trends stark JUnit begünstigen.

http://www.indeed.com/jobtrends?q= TestNG% 2C + JUnit & l =

Beide tun ihre Arbeit gleich gut, so gibt es kein richtig oder falsch. Sie können mit einer Vielzahl von Rahmen, um Hilfe Unterstützung Ihrer Entwicklung sowohl in Kombination verwendet werden.

Wenn Sie für einen Kunden arbeiten müssen, können Sie die man lernen, die Sie verwenden zu erwarten sind. Wenn nicht, ist die beste Idee, sie beide und finden Sie heraus, um zu versuchen, was für Sie am besten funktioniert.

Ich habe beide verwendet und festgestellt, dass für Unit-Tests nur jUnit sehr gut funktioniert, aber im Hinblick auf den Systemtests würde ich TestNG empfehlen. TestNG bietet ein paar zusätzliche Funktionen (wie Parametertest) und ist sehr flexibel. Zum Beispiel in jUnit ein Test in einer Suite Fehler in der Regel bedeutet, dass Sie Ihre gesamte Suite erneut ausführen, aber in TestNG können Sie einfach den Test erneut durchführen, die fehlgeschlagen. Heres ein wirklich guter Artikel sowohl umreißt (es ist ein bisschen in Richtung TestNG voreingenommen obwohl)

http://www.ibm.com/developerworks /java/library/j-cq08296/index.html

JUnit ist sehr gut in vielen IDE einschließlich Eclipse-unterstützt und JUnit 4 mit Anmerkungen ist ganz schön zu arbeiten.

Es sei denn, Sie haben spezifische Bedürfnisse dann für Werkzeugunterstützung gehen, das heißt jUnit.

TestNG mit Unitils ist wirklich toll. Es deckt fast alle Anforderungen. Unitils Unterstützung viel Behauptung utils, Spring, Hibernate, spöttischen Frameworks, DBUtils etc.

Für mich ist es nur eine Frage des Geschmacks. Ich habe personnaly jUnit täglich für mehr als 5 Jahre und ich bin sehr glücklich mit ihm, vor allem mit der letzten Version und seiner @Rule Funktion, die verhindert, dass mein Team von writting den gleichen Code immer und immer wieder verwendet. Es integriert sich gut mit allen Tools, die ich täglich verwenden: IDE, build, kontinuierliche Integration ...

Junit ist berühmt und beste Unit-Test-Tools, ich glaube, du und ich wissen beide, Junit so wichtig, so ist, dass Java-Entwickler ändert ihre Codierungsmuster als junit Beitrag können Sie einige Junit als Basiseinheit Prüftechnik lernen sowie testng lernen als zweite Einheit Prüftechnik.

Der folgende Link vielleicht nützlich sein für Sie! http://www.javarmi.com / 2010/08 / jUnit-4-Tutorial-and-Beispiel-get-Start /

Junit ist der beste Ort zu beginnen. JUnit 4.x hat viele reiche Funktionen wie Anmerkungen usw. sowie seine get gute Unterstützung von beliebten Frameworks wie Spring.

Ich würde für JUnit gehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top