iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1
Mobile Development

如何用 Laravel 撰寫難以維護的專案系列 第 17

[Day 17] 再談談難以維護的自動測試

  • 分享至 

  • xImage
  •  

只撰寫整合測試

昨天我們提到,只寫單元測試會導致測試沒法測出所有的可能問題,可以成功的減少自動測試的好處,降低系統好改的程度。

如果有人發現這件事情的話,要求要寫整合測試,也就是會將元件整合在一起,一次合併檢驗的測試。那麼,我們可以只寫整合測試,不寫任何的單元測試。

這樣一來,我們可以達到以下效果:

提高測試複雜度

整合測試要一次測試相關的所有元件,撰寫的時候自然會牽涉更多的元件,進而提高了測試的複雜度,以及維護的難度。

如果有人提到這些測試很難維護,我們甚至都不用說些什麼,維護工程師很可能自己就受不了,提出希望可以移除測試的建議了。

減慢測試速度

整合測試關聯的元件比較多,所以相對來說,每個測試的運行時間都會更長。

測試運作越慢,就越讓人不想運作。隨著時間過去,就不會有人再注意自動測試了。

更難找出錯誤

整合測試關聯的元件比較多,所以一旦某個測試出錯,你就得檢查該測試相關的所有元件。這是一個相當麻煩的事情,如果找了半天,結果是測試本身寫錯了,那就更氣人了。

這可以大幅的降低自動測試的好處,讓人不想繼續理會自動測試。

全用替身

Laravel 的替身使用起來很方便,所以測試時,除了我們要測試的東西以外,包含 DTO 和包裝參數的類別,我們統統都使用替身。

這可以大大的提升閱讀該測試的難度,對寫出難以維護的測試很有幫助。


上一篇
[Day 16] 又開始聊測試?如何撰寫難以維護的測試
下一篇
[Day 18] 談難以維護的自動測試的最後一天
系列文
如何用 Laravel 撰寫難以維護的專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言