Rails: Getestete Bereiche mit RSpec testen
Ich bin das neue zu testen-Rails-web-Applikationen und RSpec. Ich arbeite mit legacy-code und brauchen, um hinzuzufügen, tests. Also, was ist der beste Weg, um zu testen, Entfernungsmesser und scopes mit RSpec?
Finde ich in Google ein paar Ansätze, aber Sie sind nicht ideal.
Zum Beispiel:
http://paulsturgess.co.uk/articles/show/93-using-rspec-to-test-a-named_scope-in-ruby-on-rails
it "excludes users that are not active" do
@user = Factory(:user, :active => false)
User.active.should_not include(@user)
end
oder
http://h1labs.com/notebook/2008/8/21/testing-named-scope-with-rspec
it "should have a published named scope that returns ..." do
Post.published.proxy_options.should == {:conditions => {:published => true}}
end
Find ich am besten Vorgehen (IMHO) im "Rail-Test-Rezepte":
should_match_find_method :active_only { :active == true }
wo should_match_find_method
benutzerdefinierte helper-Methode
InformationsquelleAutor der Frage andrykonchin | 2011-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Schöpfer von RSpec hat kürzlich gebloggt denkt er Validierungen sind Verhalten, Verbände Struktur. In anderen Worten: er findet, dass Vereine (und der Umfang) sollte nicht nessesarily direkt überprüft werden. Tests für diese Folgen aus dem Verhalten, das Sie möchten.
In anderen Worten, aktuelle Weisheit ist, dass es keine Notwendigkeit zu testen, die einzelnen Bereiche direkt, da Sie auf diese Assoziationen von Tests das Verhalten der Anwendung.
InformationsquelleAutor der Antwort Joost Baaij
Vom https://coderwall.com/p/hc8ofa/testing-rails-model-default_scope-with-rspec
Beispiel:
InformationsquelleAutor der Antwort hakunin
Das problem mit dem ersten Ansatz ist, dass es eigentlich Abfragen der Datenbank. Es ist langsam und unnötig. Wenn es Ihnen nichts ausmacht, können Sie sicher verwenden Sie den ersten Ansatz. Der zweite Ansatz ist schnell und klar, so würde ich es empfehlen.
InformationsquelleAutor der Antwort Jan Minárik