2013-01-21 44 views
0

我困惑。我應該在控制器文件夾中測試什麼?控制器返回成功代碼的操作?爲什麼,如果我能通過一個命令進行集成測試呢? 什麼意見測試?測試視圖是否有一些html標籤?我也可以在集成測試中做到這一點。爲什麼rspec有這麼多種類的測試?

模型需要測試驗證規則?謝謝你的幫助。

回答

1

有測試更容易實現在控制器規範。

一個例子:

方案: 一個想要測試授權訪問一組的意見(讓我們假設,非授權用戶將被重定向到登錄頁面)。

集成測試方法: 這可以測試視圖,集成測試,這往往是較慢的執行(訪問登陸頁面,填寫憑證字段,然後按回車,訪問頁面來測試...)

控制器的測試方法: 人們可以測試每個的控制器的方法和檢查響應代碼。響應是否爲重定向? (代碼200)。此外,由於控制器中的方法是rails應用程序的入口點,因此可以肯定控制器規範涵蓋了其他視圖。

1

如果你覺得只與單位(模型)和集成規範信心,併爲您的應用程序提供足夠的覆蓋範圍,你可以不理會其他人。如果你只是做這兩件事,我可以告訴你,你做得比一般開發者多。大多數開發人員也只是使用這些。

但是你應該想想控制器測試有用的,當你有一個龐大的應用程序。我的意思是,在集成測試,你不應該測試HTTP響應,或者如果一些文本是H1 HTML標籤內,因爲如果你改變了看法,您將需要更改集成測試,而不是僅僅改變視圖測試,如果你有一個。

有許多種測試,所以你可以有BREAKEN多個部分的功能,然後你可以看到發生了什麼究竟怎麼了?。它在模型上嗎?控制器?

但完全不要強迫自己編寫測試,你不覺得對你有用