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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top