使用 rspec 调用特定 url

2024-02-10

我想在 rspec 中创建一个 get 请求。

    get :exec, {:query=>"bla",
      :id => "something",
      :user_id => "user"
    }

这会构建一个类似以下的 URL:/user/query/something/exec?query=bla

问题是我的控制器检查它收到的请求,并且 url 必须如下所示:/user/query/something/_XXX_/exec?query=bla

我怎样才能在 rspec 中做这样的事情? (XXX 被硬编码在routes.rb 文件中。)


我假设您指的是控制器规格。

当您像示例中那样传递散列时,键将与路由中的变量进行匹配。对于任何与路由不匹配的键,键/值对将作为查询字符串附加。

例如,假设您的规范中有这样的内容:

get :exec, :query => 'foo', :id => '1', :user_id => 42

你的路线中有这个(Rails 3 风格):

match '/exec/:user_id/:id' => 'whatever#exec'

然后,规范将替换您给出的键/值对,并使用以下路径模拟请求:

/exec/42/1?query=foo

因此,要将规范连接到路由,只需确保将路由中的变量名称与规范请求中的参数正确匹配即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 rspec 调用特定 url 的相关文章

随机推荐

  • System.Text.Encoding.UTF8.GetBytes 额外字节

    为什么这条线 System Text Encoding UTF8 GetBytes ABCD ABCD 给我 10 个字节而不是 9 个字节 虽然 是 char 177 是否有 Net 函数 编码可以翻译该字符串正确地分成9个字节 虽然 是
  • Angular,在运行时编译和创建组件

    我正在尝试制作一个 Angular 文档生成工具 但我遇到了如何允许用户动态创建内容的挑战 我想要创建的组件可以具有任意模型和行为 因此我认为我不能使用共享组件 我所描述的组件在编译时不存在 我看到一些渲染动态组件的文档 https ang
  • Jquery cookie 记住下拉菜单的最后状态

    谁能帮我解决这个问题 我在互联网上找不到用 jQuery 执行此操作的脚本 我需要记住下拉菜单的最后状态 以便在页面加载时已经选择下拉选项 cookie 过期日期应为 90 天 或者让我在脚本中指定 因为我已经在我的页面上使用了 jQuer
  • Angular 2 - 更新到 rc4 后,ngModel 无法在
    内工作

    我刚刚更新了 RC4 然而 很多事情都停止工作了 下面的工作正常 现在 除非删除其中之一 否则 ngModel 无法在内部工作 page js import Component from angular core 页面 html
  • jsf html标签内部值

    我有这个命令按钮 我需要使用 Bootstrap 3 添加一个图标
  • 离子应用程序的 Keycloak:带有 cordova-native 的 keycloak-js 不起作用

    我正在尝试在我的 ionic 4 cordova 应用程序中使用 Keycloak js 来自 4 4 0 Final 库 我已遵循example https github com keycloak keycloak tree master
  • 错误由于错误而停止(org.apache.kafka.connect.cli.ConnectDistributed)java.lang.NoClassDefFoundError:io/debezium/util/IoUtil

    客观的 我正在尝试使用 Debezium 连接器 1 2 4 Final 从 Kafka Connect 最好是分布式模式 连接到我的 Oracle 数据库 12c 我使用的Kafka版本是2 13 2 6 0 使用的命令 正如所提到的he
  • YouTube 视频嵌入 pyqt

    如何使用 PyQt5 嵌入 youtube 视频 我尝试执行以下操作 但它给了我一个未解决的错误 DirectShowService doRender 未解决的错误代码 from PyQt5 import QtWidgets QtCore
  • 使用 Kerberos S4U 扩展(在 Java 8 中引入)通过 JDBC 连接到数据库

    自从我用 Java 编写代码以来已经有一段时间了 所以我可能遗漏了一些明显的东西 我想通过 JDBC 连接到数据库 我需要支持很多 SQL Server MySQL 等 但是 我想使用 Java 8 中添加的 Microsoft S4U J
  • 如何获取被调用例程中调用函数的名称?

    是否有一种 非内部 方式来获取调用者的姓名 如函数stop does 我的想法是 我有一个小函数来检查输入并在不满足某些条件时停止执行 该函数被其他几个使用相同验证代码的函数调用 如果输入无效 则调用者的环境将被转储 因此我可以看到传递给函
  • SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS 是什么意思?

    我正在尝试使用 onPreviewFrame 回调显示过滤后的相机预览 问题是当我删除这一行时 mHolder setType SurfaceHolder SURFACE TYPE PUSH BUFFERS 隐藏预览 应用程序崩溃 日志中写
  • 将 div 高度设置为等宽 ( javascript )

    我知道这是一个很受欢迎的问题 我已经阅读了解决方案 包括将 padding bottom 设置为相等宽度 以及将其分配给伪元素 以便更容易插入内容 加上其他 CSS 解决方案 css 高度与宽度相同 https stackoverflow
  • 如何在DNN中获取父页面的名称和链接

    我希望子页面上有一个链接 它不仅是父页面的名称 而且还链接到 DNN 中的父页面 在你的皮肤 ascx 文件中使用它 a href a 注意 这是针对 C 皮肤的
  • 在 Windows Phone 7 开发中使用 SQLite

    我是 Windows Phone 7 开发的新手 我使用 SQLite 作为数据库 那么任何人都可以帮助我了解如何使用它吗 如果您有任何有关此问题的帮助链接或论坛 请帮助我 我已经搜索了两天了 但我没有得到我想要的东西 Thanks 您是否
  • Proguard 重复的 Zip 条目

    我试图通过 Proguard 运行我的 Android 应用程序 但是这个不断出现 Warning Exception while processing task java io IOException Can t write C User
  • 在 Rails 的会话中存储对象

    我一直被教导在会话中存储对象是一个坏主意 相反 应该存储 ID 以便在需要时检索记录 但是 我有一个应用程序 我想知道它是否是该规则的例外 我正在构建一个抽认卡应用程序 被测验的单词位于数据库中的一个表中 其架构不会更改 我想存储当前在会话
  • 捕获承诺中的拒绝

    我想保留错误func reject 不直接到onError 通过选择 在我总是让func resolve 并确定后的返回结果yield func 如果我想直接前往onError use throw 想知道有什么更好的主意我可以让func r
  • RedirectToAction 到另一个控制器中的操作不起作用

    在我的 mvc3 POST ActionResult 方法中 我有一部分如下代码 if button Save as Pdf RedirectToAction getPdf Pdf resultObtained 当用户单击按钮时 它会将用户
  • Python配置文件:有什么文件格式推荐吗? INI格式还合适吗?看起来很老派

    我需要存储 Python 应用程序的配置 键 值 并且我正在寻找将这些配置存储在文件中的最佳方法 我遇到了Python的配置解析器 http docs python org library configparser html我想知道 INI
  • 使用 rspec 调用特定 url

    我想在 rspec 中创建一个 get 请求 get exec query gt bla id gt something user id gt user 这会构建一个类似以下的 URL user query something exec q