2011-08-24 134 views
2

我目前正在使用ruby 1.9.2和rails 3,并且正在进行rspec测试。基本上,我有一个函数被应用程序控制器中的before过滤器调用,这样每次在我的站点上的任何地方执行控制器操作时,它都会运行。出于测试目的,我正在编写针对不同控制器的测试,但我的操作并未在过滤器函数调用之前启动。有没有什么方法在rspec测试中专门调用特定控制器的函数?我无法在线发布代码,因此无需询问:P。
感谢Rspec Ruby on Rails控制器问题

+1

这很好,你不能发布你的代码。只需编写一个演示相同问题的不同代码的快速测试案例。 –

回答

4

内的前(:每个)块控制器规格:

controller.send(:your_method_name) 

而且你的函数将被调用。

+0

因此,如果我在“reports_controller_spec.rb”中编写测试,并且我想调用存在于我的“application_controller.rb”中的函数,那么我会在测试中放入“application_controller.send(:method_name)”? – trflach

+0

** controller.send(:method_name)**,您的控制器可用于名为** controller **的方法。 –

+0

好吧我想我明白了。真棒,谢谢你:) – trflach