集成测试时直接设置flash

Directly setting a flash during integration test

我有一些内容是根据一些自定义的即显消息显示的。 有没有办法在集成测试时直接设置flash值?

class SomePageTest < ActionDispatch::IntegrationTest
  test "should keep custom flash" do
    flash[:foo] = 'bar'
    get user_path(@user)
    assert flash['foo'], 'bar' #no worky
  end
end

Rails guides 中所述,只有在集成测试中提出请求后,flash 才可用。

但是,get 方法的文档显示您可以在测试中传递 flash 参数。

另请注意,您手边有 @request 实例变量,它有一个 method for setting the flash hash

我认为以上其中一项可行。如果不是,请记住 flash 只是一个 header。设置闪光灯使用 set_header 方法和 special key.