2011-11-22 84 views
0

我正在爲我的模型中的方法編寫測試。當然,這聽起來像我需要單元測試,但是這個方法的參數之一從rails應用程序中的表單中獲取參數。我應該創建單元測試還是功能測試(或兩者兼而有之)?我應該如何去測試這個在rails中?

對於單元測試,我只是設置一個類似於窗體響應輸出的哈希參數變量,但我想知道這是否是最好的方法,因爲窗體參數可以更新或在某個時間更改未來。

謝謝。

+0

如果表單參數發生變化,無論如何,無論測試的位置如何,您都必須更改測試。 –

回答

2

您應該至少對您的方法進行一個或多個單元測試。一般來說,你需要覆蓋三件事:

  1. 基本情況 - 什麼是最有可能給這個方法的參數?
  2. 特殊情況 - 什麼是仍然會通過的極端情況?什麼是上限和下限? null情況如何?
  3. 無效的情況 - 可能提供給無效的方法的值是什麼?你的方法如何處理它們?

如果你覆蓋了這些情況,並且你沒有做任何特殊的參數傳遞給方法,那麼功能測試變得不那麼重要。

但是我仍然鼓勵你做一些行爲測試。 Rails是一個單元測試和行爲/集成測試很容易完成的環境,因爲有大量的寶石可用 - 主要是RSpec,CucumberCapybara。如果你寫了一個Cucumber功能,那麼Capybara將會選擇表單參數的變化,如果有任何不妥之處,你的功能將失敗。

相關問題