2013-06-25 39 views
0

爲什麼約定在控制器規格中存根數據庫調用?我主要關注爲什麼(或者爲什麼不)在控制器中存儲數據庫調用是很好的。我的觀點是,在某些情況下,如果它是一個簡單的查詢(即通過id查找),那麼它是可以的,但是當你進入更復雜的查詢時,它是有用的。我也可以爭辯說,在控制器中不應該有複雜的查詢,並且應該在模型中完成像這樣的任何邏輯。存根控制器規格的好處

讓我知道你對此的看法或感受,謝謝。

回答

0

爲了編寫純粹的單元測試而沒有外部依賴性,存根對於模擬積分點特別有用。 這意味着它的用處真的基於查詢的複雜性,而是作爲抽象依賴關係的一種方式。

0

我喜歡分開放置數據庫調用。無論查詢有多簡單或複雜,我都將數據庫函數放置在單獨的類中。

  1. 它給了我一個複雜的設計和集中的邏輯。
  2. 我可以輕鬆地重用任何控制器中的功能。

基本上,我模擬存儲過程。我一直在對最後一個當前項目進行練習,並對此有正面的反饋。

0

DB調用在控制器中沒有位置。表示層(控制器,視圖,模板等)甚至不應該意識到存在任何類型的存儲(無論是SQL數據庫,遠程REST API還是一些神奇的文本文件)。數據庫交互應該發生在模型層,它由單獨的一組實例執行 - 類似於data mappers

基本上,你的MVC是壞的。