首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在RSpec Controller规范中测试RJS的最佳方法是什么?

在RSpec Controller规范中测试RJS的最佳方法是使用render_viewsaction_viewrender方法。

首先,在测试文件中添加render_views,以便在测试中渲染视图。

代码语言:ruby
复制
require 'rails_helper'

RSpec.describe YourController, type: :controller do
  render_views

  describe "GET #your_action" do
    it "renders the correct template" do
      get :your_action
      expect(response).to render_template("your_action")
    end
  end
end

接下来,在spec/support目录下创建一个名为action_view_helper.rb的文件,并添加以下代码:

代码语言:ruby
复制
module ActionViewHelper
  def render_view(template, locals = {})
    controller.prepend_view_path "spec/fixtures/views"
    controller.render_to_string(template, locals: locals)
  end
end

RSpec.configure do |config|
  config.include ActionViewHelper, type: :controller
end

这个模块将允许你在控制器测试中使用render_view方法来渲染视图。

现在,你可以在测试中使用render_view方法来测试RJS。例如:

代码语言:ruby
复制
require 'rails_helper'

RSpec.describe YourController, type: :controller do
  render_views

  describe "GET #your_action" do
    it "renders the correct template" do
      get :your_action
      expect(response).to render_template("your_action")
    end

    it "renders the correct RJS" do
      get :your_action
      rendered_view = render_view("your_action.rjs")
      expect(rendered_view).to include("$('some_element').update('some_content')")
    end
  end
end

在这个例子中,我们使用render_view方法来渲染your_action.rjs视图,并检查渲染后的视图中是否包含了正确的JavaScript代码。

总之,在RSpec Controller规范中测试RJS的最佳方法是使用render_viewsaction_viewrender方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券