控制器代码:
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
我检查了this related post,但我的response
对象似乎没有layout
属性/方法。
答案 0 :(得分:23)
您可能会发现"Testing Controllers with RSpec" RailsCast和官方rspec-rails documentation有帮助。
查看assert_template
的代码(这就是render_template
调用的内容),看起来你应该能够做到
response.should render_template("index")
response.should render_template(:layout => "topgun")
虽然我不完全确定它会起作用。
答案 1 :(得分:0)
RSpec 3:
expect(response).to render_template(:new) # wraps assert_template
https://relishapp.com/rspec/rspec-rails/v/3-7/docs/controller-specs