2013-02-16 44 views
1

我正在編寫一個將專注於搜索的Rails應用程序。爲此,我覺得我應該將控制器上的實際search操作從另一種方法中分離出來,以準備搜索參數,以確保我可以準確測試。但是,我不確定在哪裏放置這種方法。 Others已經告訴我把它放到一個新的類中,但我不確定你在Rails項目中放置了哪個額外的類文件。有沒有習慣的目錄位置,人們通常會存儲額外的類?如果不是,那麼這種方法如何在同一個控制器中作爲私有方法進行測試?如何編寫(測試)不是控制器或模型的Rails類

回答

2

你通常會把額外的類放在lib文件夾中。至於測試,沒有什麼特別的。如果你正在使用RSpec,只需做:

describe ExtraClass do  
    it 'saves the day'  
end 
+0

怎麼會有人去加載這個新類到控制器?我收到錯誤,例如'未初始化的常量FirstController :: NewClass'。我試圖在控制器文件的第一行使用'load',但我不確定是否應該這樣做。 – 2013-02-16 18:38:00

+0

您是否先重新啓動服務器?根據您的Rails版本,您應該自動加載該類。 – mathieugagne 2013-02-16 18:39:57

+0

我正在嘗試使用TDD從頭開始構建,因此我重新啓動的唯一一件事是我的Guard/Spork測試服務器。我在文件'#{Rails.root}/lib/search_filter.rb'中命名了新的類SearchFilter。這聽起來正確嗎? – 2013-02-16 18:42:22

相關問題