【问题标题】:Rails: How to test subdomains with RSpecRails:如何使用 RSpec 测试子域
【发布时间】:2012-04-17 14:29:43
【问题描述】:

我正在开发一个严重依赖子域的应用程序。它在应用程序(模块)中嵌入了一个应用程序,该应用程序将成为管理应用程序的后端。我们把它命名为 kong。

我的路由文件中有这段代码:

constraints :subdomain => "kong" do
  scope :module => "kong", :as => "kong" do
    resources :clients
  end
end

我如何测试这条路线,以便当我编写类似以下内容时,它会从子域中获取并且仅从子域中获取:

get :index

【问题讨论】:

    标签: ruby-on-rails-3 rspec subdomain


    【解决方案1】:

    在测试单元中,我使用类似这样的方法将 request.host 设置为来自子域:

    def get_sub(sub = "one")
      @request.host = "#{sub}.local.me" 
    end
    

    我个人会将其放入spec_helper.rb 文件中,并在您需要时参考。

    对你来说,在这些测试中,你将 sub 设置为等于 "kong" 可能就像

    before :each do
      get_sub("kong")
    end
    

    这个小丑也有答案,我在through google之后找到的

    【讨论】:

    • 当它明确设置一个值时,为什么你调用这个方法get_sub?还有,为什么要缩短? set_subdomainstub_subdomain 将是此方法的绝佳名称。
    • 我想在完美的后见之明世界里,我会称它为set_subdomain,但撇开迂腐不谈,答案仍然有效。 OP 可以将方法更改为他选择的任何方法。
    • 请注意,这在路由规范中不起作用,因为@request 将为零
    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2012-08-25
    • 2015-05-11
    相关资源
    最近更新 更多