Как я могу проверить, правильно ли отображался мой контроллер на Rails 3? - PullRequest
17 голосов
/ 14 февраля 2011

Код контроллера:

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 ]

23 голосов
/ 14 февраля 2011

Вы можете найти "Тестирование контроллеров с помощью RSpec" RailsCast и официальную документацию rspec-rails .

Поиск кода для assert_template (это именно то, что render_template называет), похоже, вы должны быть в состоянии сделать

response.should render_template("index")
response.should render_template(:layout => "topgun")

, хотя я не совсем уверен, что это сработает.

0 голосов
/ 24 апреля 2018

Для RSpec 3:

expect(response).to render_template(:new)   # wraps assert_template

https://relishapp.com/rspec/rspec-rails/v/3-7/docs/controller-specs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...