Rails测试在控制器中呈现动作

时间:2018-02-28 21:53:50

标签: ruby-on-rails ruby

我有一个动态驱动的Rails应用程序,其中包含视图并由请求的路径确定。

routes.rb中:

Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html

  get ':tenant', to: 'tenants#home'
  get  '/:path', to: 'tenants#page', :constraints => { :path => /.*/ }
end

TenantsController:

class TenantsController < ApplicationController
    def home
        render :template => params[:tenant] + "/home"
    end

    def page
        render :template => params[:path]
    end
end

正如您所看到的那样,我们从端点获取路径约束并从中渲染视图模板。

我想编写一个测试,确保rails请求一个与所请求的URL匹配的视图模板。 (基本上测试TenantsController中的页面方法。)

鉴于我不想将我的测试绑定到可能在系统中的租户,如何在没有测试知道某些Tennant的情况下为此编写测试?

1 个答案:

答案 0 :(得分:0)

您可以使用 assert_template 方法为您的控制器编写测试:

&#xA;&#xA;
  test“应该呈现正确的模板”do&#xA; ['path1','path2']。每个do | path |&#xA;得到'/',params:{path:path}&#xA; assert_template“#{path}”&#xA;结束&#xA;结束&#xA;  
&#xA;&#xA;

本指南提供了有关如何测试控制器的更多详细信息。

&#XA;