rspec能否检测到之前完成的路由修改(:每个)?

时间:2011-04-28 03:55:37

标签: ruby-on-rails-3 rspec

我正在编写一个修改Rails路由的插件,我想编写一个RSpec测试来验证如果我写了一条任意路由,它会被添加到Rails中。测试时间为https://github.com/carpeliam/governor/blob/master/spec/action_dispatch/routing/mapper_spec.rb#L23。有问题的一行是:

{:get => "/articles/#{@article.id}/foos"}.should route_to(:controller => 'foos', :action => 'show', :governor_mapping => :articles)

这与No route matches "/articles/1/foos"失败,但(1)我刚刚验证了两行以上Rails.application.routes中存在articles_foos路由,以及(2)即使规范未通过,代码在野外工作,所以我知道测试是错误的,或者说,我没有正确测试。

如何修复测试以使其通过?

1 个答案:

答案 0 :(得分:0)

我实际上在RailsConf上与David Chelimsky讨论了这个问题,我们将问题追溯到Rack :: Test。然后大卫和Yehuda Katz交谈,看看我们遇到了什么,或者是一个bug,而事实证明,Rack :: Test并不是为这种东西而建的。总而言之,RailsConf是一个很好的机会,可以让代表最亲密的人回答问题。感谢David和Yehuda。