Wir arbeiten an einem Controller. Es sieht ein bisschen so aus:Wie kann ich in der Antwort eines Rails-Controllers mit RSpec 2 nach einem XML-Tag suchen?
class ArticlesController < ApplicationController
respond_to :xml
def show
respond_with(Article.find(params[:id]))
end
end
Wir würden gerne erwarten, dass ein bestimmtes Feld im Ergebnis erscheint. Wir haben versucht, dies zu tun:
require 'spec_helper'
describe ArticlesController do
describe "#show" do
let(:article) { Article.create!(:title => "3,527 can't-fail tips to improve your clickthrough rates.") }
subject { get :show, :id => article.id; response }
it { should have_selector("title", :text => "3,527 can't-fail tips to improve your clickthrough rates.") }
end
end
bekam aber dies:
Failures:
1) ArticlesController#show
Failure/Error: it { should have_selector("title", :text => "3,527 can't-fail tips to improve your clickthrough rates.") }
NoMethodError:
undefined method `has_content?' for #<ActionController::TestResponse:0x00000100e29770>
# ./spec/controllers/articles_controller_spec.rb:7:in `block (3 levels) in <top (required)>'
So have_selector
ist nicht richtig. Und have_tag
funktioniert auch nicht. Was ist der richtige Weg dies zu schreiben? Versuchen
Whoops, das war ein Tippfehler. Ich meinte 'have_selector'. Habe gerade verifiziert, dass mir das auch 'NoMethodError' gibt. Ich habe die Frage aktualisiert. – Peeja