2016-06-08 7 views
0

Ich möchte mit FactoryGirl und RSpec eine Testsuite für meine Spree-App erstellen. Sollte ich Tests von Grund auf schreiben oder kann ich irgendwie eine vorhandene Ressource nutzen, damit ich keinen Code dupliziere?Eine Testsuite für eine Spree-App schreiben

Es gibt viele _spec.rb-Dateien in spree/core/spec/models/spree. Es wäre großartig, wenn rspec spec ausgeführt werden könnte und die Kernspree-Testsuite sowie alle Tests, die ich schreibe, ausführen.

Die Spree documentation empfiehlt, bundle exec rake test_app auszuführen, um "die entsprechende Testanwendung innerhalb Ihres Spezifikationsverzeichnisses zu erstellen". Wenn ich diesen Befehl ausführen, wird diese Fehlermeldung I:

rake aborted! Don't know how to build task 'ecommerce' (see --tasks)

Spree montiert in config/routes.db diese Zeile: mount Spree::Core::Engine, at: '/'.

Ich würde gerne die "entsprechenden Dateien" haben, so dass ich nicht viele Tests schreiben muss, die bereits geschrieben wurden, aber ich bin ratlos. Danke für irgendwelche Tipps.

Antwort

1

Von der Spree Dokumentation:

Spree besteht aus mehreren verschiedenen Edelsteinen (siehe Quellcode Guide für weitere Details.) Jede dieses Edelsteins hat seine eigene Test-Suite, die in der Spezifikation Verzeichnis gefunden werden kann. Da es sich bei diesen Edelsteinen auch um Rails-Engines handelt, können sie nicht wirklich vollständig isoliert getestet werden - sie müssen im Rahmen einer Rails-Anwendung getestet werden.

Sie können ganz einfach mit Hilfe der Rake Aufgabe, eine solche Anwendung erstellen für diesen Zweck entwickelt, sie innerhalb der Komponente ausgeführt wird Sie Test wollen:

bündeln $ exec Rake test_app

In anderen Wenn Sie Spree selbst testen möchten, erstellen Sie eine neue Rails-Anwendung für diesen speziellen Zweck.

Ich bezweifle, dass das wirklich ist, was Sie tun möchten. Wenn Sie Tests für Ihre eigene Anwendung schreiben, selbst wenn sie Spree verwenden, müssen Sie Spree selbst nicht testen, sondern nur den Code, den Sie schreiben. Vermutlich führen die Autoren von Spree diese Tests durch, bevor sie jede neue Version in die Freiheit entlassen.

+0

Danke @zetetic !! Das macht Sinn. Ich will Spree nicht selbst testen. Hier ist der Grund, warum ich eine Testsuite schreiben wollte: Wenn ich Code wie zusätzliche Methoden oder Modelle schreibe, möchte ich sicherstellen, dass alle Kernfunktionen von Spree immer noch funktionieren. Ich bin neu im Testen, daher würde ich es sehr zu schätzen wissen, wenn Sie bestätigen könnten, dass dies ein vernünftiges Anliegen ist, oder, alternativ, erklären Sie es weg. –

+0

Sie sollten davon ausgehen, dass die Bibliotheken/Erweiterungen/Plugins/etc. das du verwendest bist bereits getestet. Im Fall von Spree haben sie tatsächlich die extra Meile gegangen und gezeigt, wie man die Tests durchführt, was ein gutes Zeichen ist. Schreiben Sie Tests, die den Code ausführen, den Sie * schreiben *. Verwenden Sie möglichst Code, der in kleinen Einheiten mit wenigen Abhängigkeiten getestet werden kann. Schreiben Sie außerdem separate High-Level-Feature-Tests, die den gesamten Stack steuern. Es ist klug, über Probleme in externen Bibliotheken besorgt zu sein, aber es ist sinnlos, zu versuchen, diese Probleme durch Tests zu finden. Wo würdest du anfangen? Wo würdest du aufhören? – zetetic

+0

Bekam es @zetetic. Damit werde ich zuversichtlich voran gehen, mich nicht zu sehr auf das Testen für den Moment konzentrieren und diese Fragen und Antworten noch einmal durchgehen, sobald ich mich mit Spree wohler fühle. Sehr geschätzt! –

Verwandte Themen