ruby-on-rails - 在Rails路由中要测试什么?

标签 ruby-on-rails rails-routing

我很好奇人们对路线进行充分/彻底的测试的想法。与我一起工作的一个人似乎想断言我们的路线文件中的每条路线,无论其标准如何。我觉得这很浪费时间,但也许我错了,对此我还是没有意识到。

在某些情况下,我可以在路由中看到一些值(value)。尽管我一直想摆脱这些请求,但我们仍然有几个 Action 可以同时响应GET和POST请求。我们对lambda或任何东西没有任何疯狂的约束,但是如果这样做的话,这似乎值得测试。

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

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

我们断言这两个路由都存在,我们断言它们是GET,并且它们进入了正确的 Controller / Action 。这有什么意义吗?感觉到我们现在才在测试Rails。

在一个稍微相关的问题上,我更喜欢像上面那样定义资源路由(使用only: [:index, :show]部分)。如果该 Controller 上只有index/show Action ,那么仅在routes文件中定义resources :foo有什么结果吗?

在我看来,它可能只是在使用更多的时间和/或内存,但是是否出于某种原因还是出于安全考虑或我确实没有意识到的某些严重问题?

最佳答案

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

这减少了对公布的入口点的回归,而与它们获取或返回的数据无关。

测试这些级别的水平也引起了一些争论。测试路由本身是否有值(value),还是仅验证数据输入/输出是否有意义?这样做还可以测试相同的路线,我认为这更有值(value)-但速度较慢。

我倾向于仅在以下情况下直接测试路线:

  • 他们有点时髦,例如,不是沼泽标准路线
  • 我必须拒绝一些路线
  • 在初步开发中。

  • 初步的路由测试通常会在以其他方式进行测试后被删除。

    关于ruby-on-rails - 在Rails路由中要测试什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112486/

    相关文章:

    html - 向样式表添加新样式在 Rails 中不起作用

    html - Rails 4 公共(public) 404/500 错误页面正在请求路径错误的图像资源

    ruby-on-rails - 点击时渲染部分

    ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController

    ruby-on-rails - 如何动态添加路由到 Rails3 中的作用域资源?

    ruby - 提交表单后没有路由匹配 [POST] "/story/new"

    ruby-on-rails - Rails 路由 : format constraints when none is specified

    mysql - "Host ' 192.XXX.XXX.X ' is not allowed to connect to this MySQL server"尝试从另一个容器访问 mysql Docker 容器时出错

    ruby-on-rails - 在 Rails 6 中使用 webpacker 导入 CSS

    ruby-on-rails - 需要向根路径添加国际化 - Ruby on Rails 3.2