Rails 路由中要测试什么?

2024-01-08

我很好奇人们认为什么是充分/彻底的路线测试。和我一起工作的一个人似乎想要断言every路线在我们的路线文件中,无论多么标准。我觉得这是浪费时间,但也许我错了,而且我没有意识到这有一些价值。

在某些情况下,我可以看到路由的一些价值。我们仍然有一些操作可以响应 GET 和 POST 请求,尽管我一直想摆脱这些操作。我们对 lambda 或其他东西没有任何疯狂的约束,但如果我们这样做的话,似乎值得测试。

但是对于正常的资源定义呢?

resources :foo, only: [:index, :show]

我们断言这两条路由都存在,我们断言它们是 GET 并且它们转到正确的控制器/操作。这有什么意义吗?感觉我们此时只是在测试 Rails。

在一个稍微相关的问题上,我更喜欢像上面那样定义资源路由(使用only: [:index, :show]部分)。仅定义有什么后果吗resources :foo在路由文件中,该控制器上是否只有索引/显示操作?

在我看来,这可能只是使用了更多的时间和/或内存,但这是否也是一个安全问题或我没有意识到的真正糟糕的事情?


测试路由的最大原因不是双重测试 Rails,而是验证面向公众的 API。

这减少了针对广告入口点的回归,无论它们获取或返回的数据如何。

What level测试这些也存在一些争议;测试路由本身是否有价值,或者仅验证传入/传出的数据才有意义?这样做also测试相同的路线,我认为更有价值——但速度更慢。

我倾向于只在以下情况下直接测试路由:

  • 它们有点时髦,例如,不是沼泽标准路线
  • I must拒绝一些路线
  • 在前期开发过程中。

一旦通过其他方式进行测试,初步的路由测试通常会被删除。

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

Rails 路由中要测试什么? 的相关文章

随机推荐

  • 如何在 Jenkins 中设置“资源根 URL”

    我们正在设置一个新的 Jenkins 实例 并发现 资源根 URL 默认为空 我已经阅读了有关此内容的 Jenkins 文档和 少数 stackoverflow 响应 但我仍然不清楚如何填写此字段 在我们的示例中 我们使用具有专用外部 IP
  • CakePHP错误数据库未定义

    我在每个问题中都搜索了这个问题的答案 但没有找到 这是我输入 localhost cakephp 时出现的错误 Notice 8 Undefined index datasource CORE Cake Model ConnectionMa
  • Django 管理模板覆盖在生产环境中不起作用

    Like 这个问题 https stackoverflow com questions 11793890 custom django admin templates not working 我的管理员覆盖在我的生产环境中不起作用 但它们在我
  • 在 SPARK 2.2.0 中如何将外部表转换为托管表?

    以下命令已成功将外部表转换为托管表Spark 2 0 0 ALTER TABLE table name SET TBLPROPERTIES EXTERNAL FLASE 但是上面的命令失败了Spark 2 2 0出现以下错误 查询错误 无法
  • 将 std::function 转换为 std::function

    首先 我定义两个类 它们相互继承 class A class B public A 然后 我声明一个使用std function
  • 未定义方法 merge_wrapper_options

    我正在尝试使用简单表单的虚假输入 如此处记录的 https github com plataformatec simple form wiki Create a fake input that does NOT read attribute
  • Swift 中的弱链接

    我正在处理一个场景 其中有一个我弱链接的 Objective C 类 attribute weak import interface MyClass NSObject end 我也在我的 Swift 代码中使用这个类 let myObjec
  • 调用客户端时,信号器服务器端方法是否应该异步?

    我正在关注 SignalR 教程 http www asp net signalr overview hubs api hubs api guide server http www asp net signalr overview hubs
  • 如何在 Spring Boot 中覆盖依赖项的托管版本

    Spring Boot 允许我们使用以下命令更改 Java 版本
  • 随机排序

    关于如何从集合中获取随机文档的问题已被多次询问 并且有关于该主题的建议 我需要的是从集合中获取几个随机文档 更糟糕的是 这些文档必须符合某些标准 我的意思是经过过滤 例如 我有一个文章集合 其中每篇文章都有一个 主题 字段 用户选择他感兴趣
  • 如何从 Android Facebook SDK 4.6.0 获取电子邮件 ID?

    这是我在 Facebook 登录后获取用户信息的代码 我正在尝试从用户那里获取电子邮件ID 我得到了名称 ID 但没有得到电子邮件ID 我尝试使用登录按钮和登录管理器类都给出了相同的结果 现在如何从回复中获取电子邮件 ID loginBut
  • 一旦 div 达到一定高度,使用 jQuery 将 div 的高度更改为自动

    我有一个 div 可以让用户动态添加额外的表单输入 我希望能够在这个 div 达到一定高度后将其高度更改为自动 这是我的 jQuery 代码 尽管它目前似乎不起作用 document ready function if upload3 he
  • 帮助测试使用 php 的代理是否有效

    我有一个代理列表 需要在我正在编写的 php 脚本中使用它们 在使用代理之前如何测试它是否可以正常工作 那可能吗 目前 如果代理不起作用 脚本将在 30 秒后终止 有没有更快的方法来确定它是否有效 也许创建一个套接字连接 向它发送一些内容来
  • Android JetPack 的共享 ViewModel 生命周期

    文档https developer android com topic libraries architecture viewmodel sharing https developer android com topic libraries
  • 将 CSV 中的所有列导入为字符?

    简单的问题 PROC IMPORT OUT braw address DATAFILE path address data csv DBMS csv REPLACE GETNAMES YES RUN 该语句将创建数据集列作为字符or数字取决
  • 数据类型“application/json”与“json”[重复]

    这个问题在这里已经有答案了 可能的重复 ajax 数据类型 https stackoverflow com questions 2722750 ajax datatype 我正在使用 jQuery 1 8 2 出于某种原因 applicat
  • 如何将 SQLite3 数据库更改刷新到磁盘?

    我的应用程序在便携式 Debian 5 和 8 计算机上运行 这台计算机可能会在不可预测的时间断电 该应用程序经常更新特定的 SQLite3 数据库 并立即刷新到磁盘 使用sync 命令 这样做是为了避免数据库损坏 这种情况会在更改完全写入
  • layout_gravity 上的动画

    在Android中 是否可以应用动画layout gravity 例如假设我想改变layout gravity of a View e g Button 从右到左
  • 如何在 Capybara 中使用 ruby​​-debug 和 selenium

    我们让 Capybara 使用 selenium 驱动程序 但是当我尝试在步骤中使用 调试器 时 它不太工作 例如在调试控制台中输入 page 有效 但输入 page body 会挂起 当尝试将调试器与 akephalos 驱动程序一起使用
  • Rails 路由中要测试什么?

    我很好奇人们认为什么是充分 彻底的路线测试 和我一起工作的一个人似乎想要断言every路线在我们的路线文件中 无论多么标准 我觉得这是浪费时间 但也许我错了 而且我没有意识到这有一些价值 在某些情况下 我可以看到路由的一些价值 我们仍然有一