带有子域的ActionDispatch :: IntegrationTest失败

时间:2019-07-02 13:31:45

标签: ruby-on-rails integration-testing

我不明白自己在做什么错,确实需要一些帮助。我正在尝试为多租户站点编写一个简单的IntegrationTest,其中每个帐户都有其自己的子域。

我按照说明here更改了IntegrationTest中的主机,但是当我运行测试时

Minitest::Assertion: Expected response to be a redirect to <http://subdomain1.example.com:3000/login> but was a redirect to <http://www.example.com:3000/>.
Expected "http://subdomain1.example.com:3000/login" to be === "http://www.example.com:3000/".
test/integration/feedback_flow_test.rb:8:in `block in <class:FeedbackFlowTest>'
Finished in 0.26594s
1 tests, 2 assertions, 1 failures, 0 errors, 0 skips

我编辑了主机文件,以使subdomain1.example.comwww.example.com指向127.0.0.1。为了使此功能正常工作,我还有其他事情要做吗?下面是IntegrationTest的代码

require 'test_helper'

class FeedbackFlowTest < ActionDispatch::IntegrationTest

  test "no token should go to the login page" do
    host! 'subdomain1.example.com:3000'
    get feedback_path
    assert_redirected_to login_url
    follow_redirect!
    assert_select '.alert-danger h3', 'You are not authorized '
  end
end

1 个答案:

答案 0 :(得分:0)

对不起,每个人...通过查看test.log发现了问题。似乎我忘记为帐户模型创建固定装置了。因此,在运行测试时不会创建任何帐户,从而导致错误。我总是在test_helper.rb文件中执行fixtures :all,以便它加载测试的所有设备。