使用会话 sinatra 进行 Rspec 测试

2023-12-28

我有使用会话的 sinatra 应用程序,如何测试使用会话的页面?

我使用 Rspec + sinatra

Tks


这一页 http://blog.ianmiller.nyc/2014/09/29/working-with-rack-sessions/,显示了测试会话的主要问题rspec and sinatra.

主要问题是变量session无法从测试代码访问。为了解决这个问题,它建议(并且我确认)在以下位置添加捕鸟线spec/spec_helper.rb:

def session
  last_request.env['rack.session']
end

它将允许从测试代码的最后一个请求访问模拟会话对象。

这是我的控制器代码,内容为codeparam 并将其值存储在session:

post '/step2callback' do
  session['code'] = params['code']
end

然后是测试代码:

context "making an authentication" do
  before do
    post "/step2callback", code: "code_sample"
  end
  it "reads the param code and saves it at session" do
    expect(session['code']).to eq("code_sample")
  end  
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用会话 sinatra 进行 Rspec 测试 的相关文章

  • Sinatra 请求对象

    我可能在这里遗漏了一些非常明显的东西 但我似乎无法找到答案 或者自己解决它 在西纳特拉 他们有一个self get方法 捕获块 当调用块时 您可以使用request里面有变量 这怎么可能 Sinatra module Sinatra cla
  • 如何将模块化 Sinatra 应用程序部署到 Heroku?

    由于某种原因 我无法访问公共目录中的任何文件 未发现错误 我不会把public显然 URL 中的一部分 查看GitHub 上的 Lovers 源代码存储库 https github com mattdipasquale loversapp
  • 不可靠/不稳定的 Capybara/AngularJS 集成测试与计时问题

    如何使这些测试可靠地通过 目前这些测试很不稳定 有时他们会过去 有时他们会失败 下面是演示此问题的设置 代码和输出 克服这个问题的建议将不胜感激 我相信也会帮助许多其他人 所以请发表评论 测试代码环境 轨道3 2 RSpec 2 x 水豚
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • 机架测试失败:JSON 请求尚未响应

    我正在尝试为我的 Ruby 项目创建一个 JSON API 如下所示Ticketee https github com rails3book ticketeeYehuda Katz 书中提供的示例Rails 3 实际应用 http www
  • sinatra 应用程序在运行时无法启动

    我使用的是 Ubuntu 10 10 Ruby 1 9 2 无论我做什么 我都无法在本地计算机上启动 sinatra 应用程序 你好 rb require sinatra get do Hello World end ruby hello
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 使用 RSpec 进行 Rails 片段缓存测试

    我觉得这是一个没有太多记录的主题 至少我在这里找到最佳实践时遇到了很多麻烦 我使用 cache key 在视图中进行片段缓存 tbody employees each do employee cache employee do tr emp
  • 应该使用 Rspec Gem 在 Belong_to 测试中返回“String:Class 的未定义方法‘reflect_on_association’”

    在我的 Rails 应用程序中 我有我的模型Request Service and ServiceRequest 在我的 models rb 文件中 我有 request rb class Request lt ApplicationRec
  • RSpec 与 Shoulda?

    我是单元测试场景的新手 我现在只使用单元测试大约两个月了 当我在 Ruby 中进行单元测试时 我目前遵循 TDD 风格并使用 Test Unit TestCase 我还阅读了 RSpec 以及它如何遵循 BDD 方法 我还读过关于 Shou
  • Rspec:测试救援

    尝试测试我的函数是否能够正确地从异常中解救 更改参数 文件名 然后重试一次 我可以让函数接收第一次尝试 但无法让它接收第二次尝试 控制器 begin video get video video id rescue matches video
  • 在 Rspec 中测试 STDOUT 输出

    我正在尝试为这个声明建立一个规范 使用 看跌期权 很容易 print file doesn t exist Create Empty File y n RSpec 3 0 RSpec 3 0添加了一个新的output matcher htt
  • 如何使用 rspec 测试 mandrill api

    因此 我的客户报告说 许多电子邮件都发给了错误的人 我想编写一些功能测试来查找并确保他们收到电子邮件以及我的规格中的内容 我有 mandrill mailer 它使用 mandrill api 在它发送之前我想看看消息是什么 例如 创建新用
  • 水豚找不到元标签

    Capybara 2 1 0 似乎没有找到任何元标记 rdb 1 p page find meta Capybara ElementNotFound Exception Unable to find css meta 即使他们出现在page
  • 从其父应用程序运行 Rails 引擎的规范

    我有用于父应用程序的 rspec 套件 以及附加的一些引擎规范 我想要的是用一个命令来运行它们 有没有办法将我的 gems 路径包含到 rspec 加载路径中 或者我应该为此编写 rake 任务 我认为这是一个有趣的问题 但我的观点是 Ra
  • 什么是 - 获取的是一个目录 - 错误消息

    我收到这个奇怪的错误 Users gideon Documents ca ruby rubytactoe lib player rb 13 in gets Is a directory spec Errno EISDIR 玩家规格 rb r
  • Capybara-webkit 无法处理与 bootstrap glyphicon 的链接

    我有一个链接 link to q span class glyphicon glyphicon trash span html safe feed item data confirm Are you sure toggle tooltip
  • Rspec to have(n).items undefined 方法

    我正在尝试遵循指南关于代码 tuts http code tutsplus com tutorials ruby for newbies testing with rspec net 21297我不断收到错误 这是我的库规范 require
  • 如何在 Rails 测试中填充查找表

    我在用Cucumber RSpec and 工厂女工用于测试我的 Rails 应用程序 但我有几个查找表 其中大部分包含static数据 所以我试图找出测试时填充这些的最佳方法 单独做它们FactoryGirl看起来很乏味 我想远离固定装置
  • RSpec 2 中使用 OR 相等

    下面这个例子的正确写法是什么 玩家的分数应等于 5 或 8 it should equal 5 or 8 do player score should 5 or 8 end Thanks Tim 5 or 8将始终产生结果 5 并且不会执行

随机推荐