【发布时间】:2011-06-07 14:19:26
【问题描述】:
在 Rails 3 上迁移后,一些 RSpec 测试中断
例子:
控制器:
class ProfilesController < ApplicationController
def create
@profile = Profile.new(params[:note])
respond_to do |format|
if @profile.save
format.html { redirect_to :back }
else
format.html { render :new }
format.js do
render(:update) do |page|
page.flash.show @profile.errors.full_messages.join(', ')
end
end
end
end
end
end
规格:
require 'spec_helper'
describe ProfilesController do
before(:each) { sign_in mock_model(Account).as_null_object }
context 'POST create' do
it 'is accessible for logged in user' do
controller.should_receive(:create)
post :create
end
end
end
失败了:
19) ProfilesController POST create is accessible for logged in user
Failure/Error: post :create
ActionView::MissingTemplate:
Missing template profiles/create with {:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb]} in view paths "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0x1059d48f0>"
# ./spec/controllers/profiles_controller_spec.rb:48
【问题讨论】:
-
你打开了 render_views 吗?也检查你的 rspec 配置。
标签: ruby-on-rails ruby-on-rails-3 testing rspec rspec2