Как я могу найти тег XML в ответе контроллера Rails с RSpec 2? - PullRequest
0 голосов
/ 14 января 2011

Мы работаем над контроллером. Это выглядит примерно так:

class ArticlesController < ApplicationController
  respond_to :xml

  def show
    respond_with(Article.find(params[:id]))
  end
end

Мы хотели бы ожидать, что в результате появится определенное поле. Мы попытались сделать это:

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

но получил это:

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)>'

Так что have_selector не прав. И have_tag тоже не работает. Как правильно написать это?

1 Ответ

0 голосов
/ 16 января 2011

Попробуйте

it {should have_selector ("title",: content => "3527 советов, которые не могут дать сбой, чтобы повысить рейтинг кликов.")}

...