Testen von Schienen Metall/Rack mit RSPEC?
-
20-09-2019 - |
Frage
Sagen Sie, ich habe eine Metallklasse mit dem Namen Vorschau. Wie teste ich es mit RSPEC?
Wenn ich versuche:
require 'spec_helper'
describe Preview do
it "should return the posted content" do
post "/preview", :content => "*title*"
response.body.should == "*title*"
end
end
Ich bekomme:
undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>
Es scheint, dass RSPEC das nicht lädt :post
Methode, wenn der Test nicht explizit für einen Controller ist. Ich habe versucht, anzugeben :type => :controller
umsonst.
Lösung
RSPEC verfügt über Integrationsspezifikationen, die die Integrationstests mit Schienen wickeln (die durch Rack gehen). Setzen Sie einfach diese Spezifikation ein ./spec/integration/preview_spec.rb
.
Andere Tipps
Ich denke, es ist besser, mit Rack/Test zu testen
Heutzutage (RSPEC-Rails 2.2.0 und Rails 3) können Sie das erreichen Anfordern von Spezifikationen:
Laut dem Readme -Datei:
Anfragespezifikationen live in Spezifikationen/Anfragen
[...]
Anforderungsspezifikationen mischen das Verhalten von Rails 'Integrationstests. Weitere Informationen finden Sie in den Dokumenten für ActionDispatch :: Integration :: Runner.