【问题标题】:How to make Sinatra sessions persist across POSTs in tests?如何使 Sinatra 会话在测试中跨 POST 持续存在?
【发布时间】:2012-02-21 10:48:00
【问题描述】:

在 Learn Ruby the Hard Way 的以下代码中:https://gist.github.com/1696733 在通过 tests 中的“帖子”后会话似乎消失了(运行 ruby test_gothonweb.rb 以了解我的意思)。如果我真的使用浏览器访问该站点,一切正常,但我希望能够在不访问每个页面的情况下测试该站点。会话在测试中消失的可能原因是什么?

有几个问题接近这个问题,但大多数问题都是通过不使用霰弹枪解决的。我不使用shotgun。我只是使用普通的ruby。

版本:

  • 红宝石:1.9.2
  • 西纳特拉:1.3.2
  • 机架:1.4.0 1.4.1
  • 机架测试:0.6.1

编辑

我还在根据http://benprew.posterous.com/testing-sessions-with-sinatra 进行测试时禁用会话 - 在这种情况下,使用带有 GET 的会话的第一个测试确实有效(但不是 POST 的)。

【问题讨论】:

    标签: ruby session sinatra rack


    【解决方案1】:

    机架 1.4.0 存在一个已知问题。将 gem 更新到 1.4.1

    【讨论】:

    • 感谢您的回复。我将 rack gem 更新到 1.4.1,但错误仍然存​​在。其他线索?
    • 抱歉,没看到要点。运行测试时您没有启用会话。通过说除非测试?您正在跳过会话选项。尝试删除除非测试?
    • 是的,我这样做是基于以下几点:stackoverflow.com/questions/4402808/… 和 benprew.posterous.com/testing-sessions-with-sinatra。如果我删除 unless test? 第一个测试失败(获取) - 但如果我在测试中禁用会话,它会起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2011-10-29
    • 2011-10-08
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多