2011-08-24 121 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