716 Stimmen

JavaScript-Unit-Test-Tools für TDD

Ich habe mir viele JavaScript-Unit-Tests und Test-Tools angesehen und in Betracht gezogen, konnte aber keine geeignete Option finden, um vollständig TDD-konform zu bleiben. Also, gibt es ein JavaScript-Unit-Test-Tool, das vollständig TDD-kompatibel ist?

11voto

kolen Punkte 2562

google-js-test:

JavaScript-Test-Framework, das von Google veröffentlicht wurde: https://github.com/google/gjstest

  • Extrem schnelle Start- und Ausführungszeiten für Tests, ohne dass ein Browser.
  • Saubere, lesbare Ausgabe sowohl bei bestandenen als auch bei fehlgeschlagenen Tests.
  • A Browser-basierter Test Runner die einfach aufgefrischt werden können wenn JS geändert wird.
  • Stil und Semantik, die sich an Google-Test für C++.
  • Ein integriertes Mocking-Framework, das nur minimalen Boilerplate-Code erfordert (z. B. keine $tearDown o $verifyAll ) mit Stil und Semantik auf der Grundlage der Google C++ Mocking Framework .

Derzeit gibt es keine Binärdateien für Windows

3 Stimmen

Es scheint auf Github fast kein Interesse zu haben, außerdem erfordert es ein Unix-basiertes Betriebssystem, und ich bin ein großer Windows-Fan, ich verlasse mein Haus nicht, ohne mich von meinem Windows-Rechner zu verabschieden.

9voto

Tom Stickel Punkte 18167

Wir verwenden jetzt Qunit mit Pavlov und JSTestDriver zusammen. Dieser Ansatz funktioniert gut für uns.

QUnit

Pawlow , Quelle

jsTestDriver , Quelle

0 Stimmen

Könnten Sie erläutern, welche Rolle jedes dieser Elemente im gesamten Prüfprozess spielt und wie sie miteinander verbunden sind?

0 Stimmen

Leider ist es schon lange her und viele Aufträge liegen zurück, so dass ich mich nicht mehr an die Einzelheiten erinnern kann.

7voto

Jeffrey Fredrick Punkte 4561

Sie haben "läuft auf aktuellen Browser" als ein Pro, aber in meiner Erfahrung ist das ein Contra, weil es langsam ist. Aber was es wertvoll macht, ist der Mangel an ausreichender JS-Emulation von den Nicht-Browser-Alternativen. Es könnte sein, dass, wenn Ihr JS ist komplex genug, dass nur eine in-Browser-Test ausreicht, aber es gibt ein paar weitere Optionen zu prüfen:

HtmlUnit : "Es hat eine ziemlich gute JavaScript-Unterstützung (die ständig verbessert wird) und kann sogar mit ziemlich komplexen AJAX-Bibliotheken arbeiten, wobei es entweder Firefox oder Internet Explorer simuliert, je nach der Konfiguration, die Sie verwenden möchten. Wenn die Emulation für Ihre Zwecke gut genug ist, wird sie viel schneller sein als die Steuerung eines Browsers.

Aber vielleicht hat HtmlUnit gut genug JS-Unterstützung, aber Sie mögen Java nicht? Dann vielleicht:

Schnelligkeit : Watir API läuft auf JRuby und wird von HtmlUnit unterstützt.

oder in ähnlicher Weise

Schnell : ein weiterer JRuby-Wrapper von HtmlUnit.

Wenn HtmlUnit natürlich nicht gut genug ist und Sie einen Browser steuern müssen, dann könnten Sie Watir als Antrieb für Ihr JS .

7voto

Matthew Taylor Punkte 3753

YUI hat eine Test-Rahmenwerk auch. Dieses Video von Yahoo! Theater ist eine gute Einführung, obwohl es eine Menge Grundlagen über TDD gibt.

Dieses Framework ist generisch und kann mit jeder JavaScript- oder JS-Bibliothek ausgeführt werden.

5 Stimmen

4voto

Andreas Ecker Punkte 111

Vielleicht sind Sie auch an dem Unit-Testing-Framework interessiert, das Teil von qooxdoo ein quelloffenes RIA-Framework ähnlich wie Dojo, ExtJS usw., aber mit einer recht umfassenden Toolkette.

Probieren Sie die Online-Version des testrunner . Tipp: Klicken Sie auf den grauen Pfeil oben links (sollte deutlicher hervorgehoben werden). Das ist eine Schaltfläche "Abspielen", mit der die ausgewählten Tests ausgeführt werden.

Weitere Informationen über die JS-Klassen, mit denen Sie Ihre Einheitstests definieren können, finden Sie in der Online API-Betrachter .

Für automatisierte UI-Tests (basierend auf Selenium RC), schauen Sie sich die Simulator Projekt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X