Rails 4 Rspec 在规范中分配时的测试会话

Rails 4 Rspec test session when assigned in spec

在我的测试中,我将会话分配给特定值,但是当我 运行 从我的应用程序控制器进行测试和打印时,会话为零。知道我该怎么做吗?

这是我的规格:

RSpec.describe "welcome/index.html.haml", type: :view do
  before(:each) do
    session[:followed_repos] = ["rails/rails"]
  end

  context "when visitor tracked repositories" do
    it "should see tracked repository list" do
      visit root_path
      expect(page).to have_no_content("You are tracking 0 repositories. Search for more here")
      expect(page).to render_template(:partial => "_tracked_repo")
    end
  end
end

这是我的控制器,我在其中打印值:

  def index
    puts session[:followed_repos].inspect
  end

谢谢你的帮助。

我找到了 2 个答案,可能会帮助那些尝试在类型中使用会话的人::view :

  1. 您可以使用 gem:rack_session_access
  2. 您别无选择,只能重现所有需要的步骤来获得您需要的会话