Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails模板的测试呈现_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails模板的测试呈现

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工具,您的控制器和集成测试将呈现视图,因此应该能够捕获

在Rails模板中错误地使用了.t方法,例如

<%= (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