17 Stimmen

Ist Test::Unit in Rails noch relevant?

Ich lerne Rails auf die uralte Weise. Durch das Lesen von Agile Web Development with Rails (3rd Edition) als Ausgangspunkt. Ich befinde mich gerade in dem Kapitel, das das Testen lehrt. Ich bin mir auch anderer BDD-Test-Frameworks wie RSPec bewusst. Ich frage mich also, ob Frameworks wie RSpec, Cucumber, Shoulda die Notwendigkeit der Kenntnis und Verwendung von Test::Unit ersetzen? Sind sie beide für sich genommen relevant und werden sie für unterschiedliche Zwecke verwendet?

UPDATE: Da ich neu im Bereich Testing bin, würde ich auch gerne Feedback dazu bekommen, welche Ressourcen nützlich sind, um meine Füße mit verschiedenen Frameworks nass zu machen.

Danke!

16voto

ewakened Punkte 2966

Die Welt hat sich verändert! Überprüfen Sie unten und upvote @prusswan

Ich denke, Test::Unit ist immer noch relevant, auch wenn es einen großen Hype um BDD und andere Testwerkzeuge gibt.

Das heißt, wenn Sie bereit sind, können Sie das Erlernen von Test::Unit umgehen und sofort mit etwas wie RSpec und Shoulda beginnen, aber es spricht einiges dafür, die Beispiele im Agile Web Development Book durchzuarbeiten, um zu sehen, woher die Ideen von BDD stammen.

Ich verwende Test::Unit immer noch für einige Projekte, da es mit Rails geliefert wird und immer noch ein sehr gutes Test-Framework ist.

Lange Rede, kurzer Sinn: Ich glaube nicht, dass es veraltet ist, aber es ist nicht mehr der letzte Schrei. BDD ist ein Paradigmenwechsel beim Testen, besonders wenn man mit Cucumber und Webrat anfängt, aber es ist fantastisch, wenn man erst einmal drin ist. Der Übergang zu Shoulda ist am einfachsten, daher würde ich mit Test::Unit beginnen, dann zu Shoulda wechseln und dann RSpec und Cucumber ausprobieren.

Sie testen oder sind zumindest an Tests interessiert! Das ist das Beste daran. Letzten Endes ist es egal, was Sie verwenden, solange Sie damit zufrieden sind.

Viel Glück!

7voto

6voto

prusswan Punkte 6634

Ich dachte nur, ich würde ein Update von 2012 posten:

Aus der drei Haupt y aktuell (verwendbar mit Rails 3.2 mit nicht mehr als ein paar kleinen Modifikationen) Einführungsbücher über RoR, zwei von ihnen verwenden Rspec (mit höchstens einer kurzen Erwähnung von Test::Unit) und eines von ihnen plant, sogar mehr Rspec für das nächste Ausgabe Es ist also klar, wer aus dieser "Schlacht" als Sieger hervorgehen wird.

Und erlauben Sie mir, dhh selektiv zu zitieren:

Das Wichtigste ist natürlich, dass wir die Leute zum Testen bringen, also sollten die Werkzeuge keine allzu große Rolle spielen.

Wiederholung im Jahr 2014:

Minitest hat nun Test::Unit als Standard in den aktuellen Versionen von Rails abgelöst. Ich persönlich finde, dass es im Vergleich zu seinem Vorgänger aus einer Reihe von Gründen einen genaueren Blick verdient -

  1. Sein Status als Standard
  2. Bessere Unterstützung für Capybara und Selenium, zum großen Teil dank Edelsteinen wie ce
  3. Relativ leicht
  4. Weitgehend abwärtskompatibel mit Test::Unit

4voto

Ethan Punkte 54731

Rspec ist ein völlig eigenständiger Testrahmen. Shoulda ist eine Erweiterung des in Rails eingebauten Frameworks, Test::Unit. Wenn Sie Shoulda verwenden, verwenden Sie Test::Unit, aber mit mehr Möglichkeiten und einer einfacheren, besser lesbaren Syntax.

Ich habe Rspec und Shoulda ausprobiert, und für mich gewinnt Shoulda ganz klar. Ich mag es viel lieber. Aber das mag Geschmackssache sein.

Beachten Sie, dass Sie können Gurke mit Shoulda verwenden .

Andere Ressourcen? Ich empfehle die Edelsteine ZenTest und RedGreen. ZenTest bietet autotest, mit dem Sie Ihre Tests automatisch bei jeder Änderung einer Datei ausführen können. Das ist eine große Hilfe.

In Bezug auf Fixtures vs. Factories, wenn Sie eine Reihe von miteinander verbundenen Objekten einrichten müssen, wo Sie beide Seiten oder eine Eltern-Kind-Beziehung testen und/oder viele-zu-viele Beziehungen testen, funktionieren Fixtures viel besser. Ich bin mir nicht einmal sicher, ob man das mit Fixtures machen kann. Lehnen Sie also Fixtures nicht ab - sie haben ihren Nutzen.

1voto

Bob Aman Punkte 32266

Es gibt eine Menge Leute, die immer noch Test::Unit bevorzugen, und bis zu einem gewissen Grad ist das eine persönliche Vorliebe. Unterm Strich werden Sie jedoch weitaus mehr Aktivität an der RSpec-Front finden. Die wirklich coolen Sachen werden alle mit RSpec und Cucumber gemacht, wenn Sie also keine persönliche Vorliebe haben, würde ich Test::Unit wahrscheinlich auslassen. Sie sollten jedoch damit vertraut genug sein, um die Tests von anderen zu lesen, die damit geschrieben wurden, aber ich würde nicht vorhersehen, dass das jemals ein Problem sein wird.

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