【问题标题】:How to make RSpec recognize slim templates?如何让 RSpec 识别超薄模板?
【发布时间】:2016-04-20 10:37:45
【问题描述】:

我在模块中有一个简单的控制器操作

module MyEngine
  module UsersControllerExt
    extend ActiveSupport::Concern

    def index
      @users = User.relevant
      render template: "users/index"
    end

  end
end

RSpec 控制器关注使用匿名控制器的规范

RSpec.describe MyEngine::UsersControllerExt, type: :controller do
  controller(ApplicationController) do
    include MyEngine::UsersControllerExt
  end

  describe "GET :show" do
    it "should set @users instance variable" do
      get :index

      expect(assigns(:users)).to be_present      
    end
  end

end

此规范失败

ActionView::MissingTemplate:
   Missing template users/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby]}. Searched in:
     * "~/Documents/my_engine/spec/dummy/app/views"
     * "~/Documents/my_engine/app/views"

如果我将模板文件 index.slim 更改为 index.erb,则规范通过。
如何让 RSpec 接受 slim 模板?

【问题讨论】:

    标签: rspec rubygems


    【解决方案1】:
    1. 确保您在 gemspec 中有 s.add_development_dependency "slim"
    2. 确保您的测试环境使用 require 'slim' 加载 gem,例如在 rails_helper.rb

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多