我很好奇人们对路线进行充分/彻底的测试的想法。与我一起工作的一个人似乎想断言我们的路线文件中的每条路线,无论其标准如何。我觉得这很浪费时间,但也许我错了,对此我还是没有意识到。
在某些情况下,我可以在路由中看到一些值(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/