Как я могу проверить, правильно ли отображался мой контроллер на Rails 3?
Код контроллера:
class BooksController < ApplicationController
def index
@books = Book.all
respond_to do |format|
format.html do
render 'index', :layout => 'topgun'
end
end
end
end
Как я должен проверить это в спецификации?
require 'spec_helper'
describe BooksController do
describe "GET index" do
it "renders the topgun layout" do
get :index
# ???
end
end
end
Я проверил этот пост, но мой response
объект не имеет layout
атрибут / метод.
2 ответа
Решение
Может оказаться полезным RailsCast "Тестирование контроллеров с RSpec" и официальная документация по rspec-rails.
Глядя на код для assert_template
(что только что render_template
звонки), похоже, вы должны быть в состоянии сделать
response.should render_template("index")
response.should render_template(:layout => "topgun")
хотя я не совсем уверен, что это сработает.
Для RSpec 3:
expect(response).to render_template(:new) # wraps assert_template
https://relishapp.com/rspec/rspec-rails/v/3-7/docs/controller-specs