天天看點

rails test prescription 随感

controller測試
  1 看一個普通,基本的使用者請求是否能引發預計的ActiveRecord正常工作,需要的資料是否傳給了view
  2 檢測controller是否能夠适當地處理不合格式的請求
  3 檢測權限系統是否正常工作,比如一個使用者請求了登入或者特定角色才能通路的頁面           
view測試
  1 view不報錯
  2 view中的資料是否是你計劃生成的資料
  3 檢測根據角色動态生成的部分,比如:登入連結,管理者連結等是否正确顯示           
內建測試與controller測試的差別
  需要對session,cookie等跨action的資料的正确性進行測試           
測試層次
  1 model
  2 controller
  3 view(helper)
  4 內建
  5 驗收
  要遵照mvc結構。反例是如果将屬于model層的東西放到controller中,那麼,你至少需要模拟一個http請求,
才能開始測試           
測試寫到什麼時候夠了
  我隻能說,你可以在rcov中達到100%,但是rcov(或者其他測試工具)的計算方式是有問題的,你永遠無法100%
測試,就像你永遠也寫不出完美的軟體一樣,夠好,就可以了           
什麼時候使用mock/stub
  1 解決依賴性
    比如:你在寫一個支付接口,但是現在你在開發階段,還不想和銀行打交道
  2 解決某些情況
    比如:你寫了一個扔色子系統,随機生成1-6的數字,而你需要對擲出6點時的程式進行測試
         測試程式的失敗情況,而失敗情況可以用stub輕松生成
  3 測試過程時,未實作的功能的替代
  4 Interface Discovery
    設計api時,你需要它           
一個測試不要使用太多mock或者stub,使用三個以上就要注意了           
是否測試負面情況
  上帝保佑我們有足夠的時間           
先寫測試還是後寫測試
  如果你接下來要做的隻是驗證正确性,那麼你可以後寫測試,不過,驗證正确性隻是TDD的目的之一,你至少要在心
裡記住,先寫測試可以改善代碼品質           
mock類庫
  rails-test-prescription 7.7 已做出了明了的比較           
你至少需要熟悉的測試工具
  1 rspec
  2 cucumber
  3 capybara
  4 factory-girl
  5 database-cleaner