使用rspec,是否可以测试视图以确保视图中的所有语法都没有任何错误?
视图调用帮助程序,它们可能引用控制器/操作名称,如controller => 'blah',action => 'show'等。
如果我重命名/删除控制器,我想确保如果我的视图引用它们,我的测试会失败。
答案 0 :(得分:0)
有几件事:
1)我不建议在您的视图中的任何位置使用:controller
或:action
,因为RESTful帮助程序要短得多。例如:
:controller => :projects, :action => "show", :id => 1
VS。
project_path(1)
2)不要以这种方式测试语法错误,而是使用适当的集成测试来测试应用程序,执行用户所做的相同操作。通常,这是由RSpec + Capybara或Cucumber提供的。
既然我们已经完成了手续,您可以将控制器测试的describe
更改为:
describe ProjectsController
render_views
默认情况下,RSpec控制器测试中的视图被删除,这意味着它们不会被访问。将render_views
放入describe
(或context
)块中,即可启用此选项。