【问题标题】:Mising template error with RSPec and Rails 3RSPec 和 Rails 3 缺少模板错误
【发布时间】: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


【解决方案1】:

你能显示你的控制器代码吗? 可能是您在profiles_controller#create 中真的没有任何重定向操作。

类似这样的:

def create
 ...
 redirect_to '/'
end

【讨论】:

  • 感谢您的评论。更新我的问题。
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多