Ruby on rails Rails模板的测试呈现
在Rails模板中错误地使用了.t方法,例如Ruby on rails Rails模板的测试呈现,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在Rails模板中错误地使用了.t方法,例如 <%= (user.score).t(:context => 'foo') %> 该方法是在number上调用的。 现在的问题是如何检验这种情况?测试代码应该位于何处,因此所有模板都将在呈现之前进行测试?如果您不测试模板本身的话。但是,如果您获得了预期的视图结果,则可以进行测试(例如)。这可能是某种“模板测试”。这取决于您选择的测试框架。使用rails附带的Test::Unit工具,您的控制器和集成测试将呈现视图,因此应该能够捕获
<%= (user.score).t(:context => 'foo') %>
该方法是在number上调用的。
现在的问题是如何检验这种情况?测试代码应该位于何处,因此所有模板都将在呈现之前进行测试?如果您不测试模板本身的话。但是,如果您获得了预期的视图结果,则可以进行测试(例如)。这可能是某种“模板测试”。这取决于您选择的测试框架。使用rails附带的Test::Unit工具,您的控制器和集成测试将呈现视图,因此应该能够捕获此类错误。其他形式的集成测试,比如cucumber,也应该学习这些东西 如果使用rspec,则可以编写视图规范:独立测试视图渲染的规范
最后,如果您发现自己的视图中有很多需要测试的逻辑,那么最好将这些逻辑提取到助手中,并为该助手编写单元测试/规范 是的,我正在使用Test::Unit。根据文档,它应该捕捉控制器错误,但我不能捕捉到这个错误,无论是assert\u response:success还是assert\u select'title',“Page title!”。。测试通过了。然后可能还有其他问题(模板渲染是否有问题?)-如果视图渲染在控制器测试中引发异常,则测试将失败
undefined method `t' for 46:Fixnum