分配主机来最小化测试请求

问题描述 投票:0回答:1

rails 应用程序将 Devise 集成到其 Minitest 助手中

module ActiveSupport
  class TestCase
    include Devise::Test::IntegrationHelpers

然而,rails 默认连接是

www.example.com
,而应用程序需要通过比较不同主机连接的结果进行测试。主机是通过
Site
类建立的。
sites.yml
例如包含

one:
  shop: one
  host: 'www.one.com'
  name: first

two:
  shop: two
  host: 'www.two.com'
  name: second

example:
  shop: id_one
  host: "www.example.com"
  name: localhost

devise Wiki 没有解决这个问题。

下面如何测试

  test "has proper credentials as shop manager" do
    sign_in users(:chain_manager_shop_one)
    get chain_manager_minitests_url(id: shops(:one).id)
    assert_response :success
  end

写入以便

sign_in
get
操作都在特定主机下进行?

ruby-on-rails minitest
1个回答
0
投票

对于 Rails 7,当然可以通过以下语法实现:

get chain_manager_minitests_url(id: shops(:one).id), headers: { "host": 'www.one.com' }

Rails 早期版本中哪些内容可能是正确的(不确定哪个)

    setup do
      request.host = "www.one.com"
    end

在 Rails 7 中绝对不执行任何操作

© www.soinside.com 2019 - 2024. All rights reserved.