Ich mache das Rails Tutorial zum zweiten Mal. Wenn ich das eingebe
rails generate integration_test static_pages
Ich bekomme spec/rails_helper.rb
und spec/spec_helper.rb
statt nurspec/spec_helper.rb
Wenn ich jetzt meine Tests durchführe, sind sie länger ("ausführlicher") und langsamer als beim letzten Mal. Ich frage mich, was der Unterschied zwischen den beiden Dateien ist und ob ich etwas falsch gemacht habe. Gibt es auch eine Möglichkeit, die rails_helper.rb
Datei zu entfernen, ohne alles durcheinander zu bringen?
ruby-on-rails
testing
rspec
rspec-rails
rspec3
user3417583
quelle
quelle
Antworten:
rspec-schienen 3 erzeugt
spec_helper.rb
undrails_helper.rb
.spec_helper.rb
ist für Spezifikationen, die nicht von Rails abhängen (z. B. Spezifikationen für Klassen im lib-Verzeichnis).rails_helper.rb
ist für Spezifikationen, die von Rails abhängen (in einem Rails-Projekt die meisten oder alle).rails_helper.rb
erfordertspec_helper.rb
. Also nein, nicht loswerdenrails_helper.rb
; erfordern es (und nichtspec_helper.rb
) in Ihren Spezifikationen.Wenn Sie möchten, dass Ihre nicht Rails-abhängigen Spezifikationen erzwingen, dass sie nicht Rails-abhängig sind, und so schnell wie möglich ausgeführt werden, wenn Sie sie selbst ausführen, können Sie dies
spec_helper.rb
eher alsrails_helper.rb
in diesen benötigen . Aber es ist sehr praktisch,-r rails_helper
in Ihrer.rspec
Spezifikation nicht den einen oder anderen Helfer in jeder Spezifikationsdatei zu benötigen, so dass dies sicher ein beliebter Ansatz ist.Wenn Sie den Spring Preloader verwenden, muss jede Klasse nur einmal geladen werden, und Spring lädt Klassen eifrig, selbst wenn Sie nur eine einzige Spezifikation ausführen, die dies erfordert
spec_helper
. Daher ist es nicht so wertvoll, nurspec_helper
in einigen Dateien zu verlangen .Quelle: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files
quelle
Sie können jederzeit alle Ihre Konfigurationen in spec_helper kombinieren und benötigen nur den spec helper in der Rails-Helper-Datei.
Es ist keineswegs "ideal", da Sie am Ende des Tages diesen "Refactor" manuell durchführen, aber WENN es Sie wirklich stört. Ich weiß nur, dass es ganz bei Ihnen liegt, wie Sie das strukturieren
Rspec.configure
und bringen Sie einfach alle Schienen-spezifischen Einstellungen ein
quelle