5

Ich versuche, TDD und BDD zu lernen und es richtig zu machen. Der Stapel, den ich benutze (oder versuche zu benutzen, Spork arbeitet nicht mit Guard für mich) ist Minitest-Guard-Spork-Capybara. Ich konzentriere mich auf Komponententests für Modelle und Spezifikationen für Integrationstests.Muss ich beim Testen jedes Mal vorkompilieren, wenn ich Javascript-Dateien in Rails 3.2 anpasse?

Ich habe eine Menge Ajax in dieser Anwendung. Ich habe gerade einen save_and_open_page auf einem meiner Tests gemacht und natürlich war die Seite natürlich abscheulich, weil sie keine der Assets finden konnte.

Meine Frage ist, wenn ich JS-Funktionalität zu testen, muss ich Vermögen vorkompilieren jedes Mal, um sie zu testen, oder gibt es eine Möglichkeit, die Pipeline Standard haben Modus zum Testen dev Zwecke.

Ich bin mir sicher, das ist eine n00b Frage, aber das ist, wo ich mit dem Testen bin. Versuche, die Dinge richtig zu machen.

Antwort

2

Sie müssen die Assets nicht kompilieren, eigentlich müssen Sie gar nichts tun. save_and_open_page funktioniert anders und lädt Ihre Assets nicht. Seien Sie also nicht erschrocken, wenn alles hässlich aussieht. Ihre Capybara-Tests funktionieren immer noch gut mit JavaScript, ohne dass sich das Setup der Testumgebung ändert.

Allerdings müssen Sie Capybara und Mini-Test für die Arbeit mit Javascript einrichten, und vergessen Sie nicht, Ihre Spezifikationen zu markieren, um Javascript zu aktivieren.

3

Nein, Sie müssen es nicht jedes Mal machen. Arbeiten Sie einfach in Entwicklungsumgebung (Testumgebung?), Produktionsumgebung und Vorkompilierung ist für Public Working System. In Ihrer Umgebung für die Arbeit sollte config.assets.compile = true sein.

+0

Danke Sper. Lass mich sicherstellen, dass ich verstehe. Damit meine Tests die tatsächlichen Assets in meiner App "sehen" können, muss ich "config.assets.compile = true" zu meiner config/environments/test.rb hinzufügen. Was passiert, wenn ich TDD oder BDD für eine Javascript-Datei mache? Wie kann das Testrahmenwerk dann auf diesen neuen Code anstelle des kompilierten Codes zugreifen? Oder habe ich das rückwärts. Ich würde denken, dass Sie im Idealfall nicht gegen kompilierte Assets, sondern gegen den rohen Code testen würden. Aber meine Tests suchen nach kompilierten Assets, weil ich die Pfade zu den Stylesheets sehen kann, wenn ich save_and_open_page. – AKWF

+0

Ich denke in Ihrer Entwicklungsumgebung sollte config.assets.compress = false sein - nicht wahr! Andernfalls müssen Sie Ihre Assets während der Entwicklung kompilieren. – Mattherick

Verwandte Themen