回答
上有rspec-rails Github site一个简单的例子。您也可以使用脚手架生成器来生成一些罐头示例。例如,
rails g scaffold Article
应该产生这样的:
require "spec_helper"
describe ArticlesController do
describe "routing" do
it "routes to #index" do
get("/articles").should route_to("articles#index")
end
it "routes to #new" do
get("/articles/new").should route_to("articles#new")
end
it "routes to #show" do
get("/articles/1").should route_to("articles#show", :id => "1")
end
it "routes to #edit" do
get("/articles/1/edit").should route_to("articles#edit", :id => "1")
end
it "routes to #create" do
post("/articles").should route_to("articles#create")
end
it "routes to #update" do
put("/articles/1").should route_to("articles#update", :id => "1")
end
it "routes to #destroy" do
delete("/articles/1").should route_to("articles#destroy", :id => "1")
end
end
end
https://github.com/rspec/rspec-rails#routing-specs可能会有所帮助 – 2012-12-06 18:41:50
我有这些类型的测试问题,这是我的问题http://stackoverflow.com/questions/14330293/rspec-for-routes-and-testing- routes-rb-specific#comment19916220_14330293,它几乎不验证路由是否存在于routes.rb中,它只与syntanx检查一起使用。有任何想法吗? – Matilda 2013-01-15 03:32:41
探究性的回答解释了如何测试路线。这个答案解释了为什么你不应该那样做。
一般情况下,您的测试应该测试行为暴露给用户(或客户端对象),而不是实施通过提供这种行为。路由是面向用户的:当用户键入http://www.mysite.com/profile
时,他不关心它到ProfilesController;相反,他关心他看到他的个人资料。
所以不要测试你要去ProfilesController。相反,建立一个黄瓜场景来测试当用户去/profile
时,他看到他的名字和个人资料信息。这就是你需要的。
再次:不测试你的路线。测试你的行为。
如果有人对此进行了低估,那将会很好,因为他们会解释为什么他们这么做...... – 2011-12-05 02:40:19
因为根据你的定义,所有的单元测试都是毫无意义的? – sevenseacat 2012-01-09 05:58:17
一般不会。单元测试在模型层面非常有用 - 涉及内部业务逻辑(独立于用户界面)。然而,在控制器层面,只有UI是相关的,所以测试控制器的实现并不能告诉你任何有用的东西。 如果有人告诉我,我不得不在黄瓜故事和RSpec模型规格之间做出选择,我会每次都拿黄瓜的故事。 (幸运的是,我不必选择:)) – 2012-01-09 16:11:03
- 1. 测试路由使用RSpec对Rails 3
- 2. 的Rails 4.0引擎和嵌套路由测试使用RSpec 3
- 3. 测试Rails 3.1与RSpec 2引擎路由
- 4. 使用rspec测试路由重定向
- 5. 如何使用Minitest测试Rails路由?
- 6. 如何在Rails 3插件中测试路由?
- 7. 在rails 3和rspec 2中,如何测试render()调用使用的布局?
- 8. Rails 3 + Rspec 2 +自动测试:自动测试不加载
- 9. 误码测试路由使用RSpec
- 10. 测试机架路由使用RSPEC
- 11. 如何在使用RSpec测试控制器时调用Rails命名的路由?
- 12. 使用rspec测试嵌套路由
- 13. 装有引擎的RSpec测试路由
- 14. Rails/rspec,集成测试失败,“无路由匹配”,但路由确实存在
- 15. Rails的RSpec的路由:测试在行动:除了不航线
- 16. Rspec测试条件路由约束
- 17. Rails 3:如何测试路由器范围?
- 18. 到Rails从Rails 3的路由2
- 19. Rails 3 vs. Rails 2路由问题
- 20. 如何使用测试用嵌套路由控制器rspec的
- 21. 在rails中测试嵌套路由
- 22. 如何使用factory_girl测试rspec 2的rails 3控制器功能?
- 23. 在Rails 3中测试子域约束路由
- 24. Rails 3,Rspec测试一个XML API
- 25. 如何在Rails 3.1可挂载引擎中测试路由
- 26. 在Rails路由3
- 27. 如何使用Cucumber&Rspec测试Rails 3引擎?
- 28. Rails:如何使用RSpec测试子域
- 29. 路由在RSpec集成测试中不可用
- 30. 使用Rspec和水豚在Rails 3中测试会话
[示例Rspec路由](https://cbabhusal.wordpress.com/2015/12/15/rails-rspec-examples-of-routing-specs/#more-1623) – illusionist 2015-12-15 03:33:21