iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1
Mobile Development

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

[Day 16] 又開始聊測試?如何撰寫難以維護的測試

  • 分享至 

  • xImage
  •  

如果有看過筆者之前的系列文章 Laravel 6.0 初體驗!怎麼用最新的 laravel 架網站!,就會知道自動測試在 Laravel 裡面是很重要的一個環節。

下面我們來說說怎麼正確的處理自動測試,以保證專案的難以維護。

什麼是自動測試

簡單的說,自動測試就是我們將測試寫成一段程式,以方便隨時執行。自動測試可以快速執行的特點,如果正確的使用在專案裡面,可以讓專案在修改時確保不改壞過去的功能,減輕維護工程師的壓力。

不寫自動測試

要避免自動測試能帶給維護工程師的這些好處,最直接的做法,就是不寫任何的自動測試。

不寫自動測試,可以保證你寫出的所有錯誤,都只有在手動測試時才有機會被發現。不過不用擔心,雖然其他人有可能會犯錯,但是你寫的程式是不可能會出錯的,所以你可以安心的不作任何自動測試。

即使你寫的出錯並且上線了,那也是驗收者沒有驗收完整的問題,不是你的。

如果有人提出建議要導入自動測試,提出自動測試不僅花費時間,又不會增加新功能,是沒有意義的事情。幸運的是,多數公司都可以接受這樣的說法,不導入自動測試,進而提高了我們在程式碼裡加入錯誤又不被發現的勝算。

不作手動測試

如果你都花時間寫測試程式碼了,那麼,和你的功能程式碼不可能出錯的道理一樣:你的測試程式碼是不可能有錯的。

只要有針對功能程式碼撰寫測試並覆蓋到就好了,不需要再手動檢查看看程式運作有沒有問題。如果有的話,一樣是驗收者沒有驗收完整的問題,不是你的問題。

要是有人抗議,提出那就不需要寫自動測試了的建議。

難以維護的自動測試

要是你看到這裡,那麼應該是確定要導入自動測試的大局已定,我們開始要寫測試避免程式有錯誤了。這對我們要建立一個難以維護專案的目標來說,實在是個壞消息。

不過別擔心,只要注意一些重點,我們還是可以最小化自動測試帶來的好處,避免讓我們的專案變得好改。

只寫單元測試

單元測試的意思,是指我們針對我們程式的單一元件做測試,其他要一起互動的元件則以測試替身(test double)代替。

只寫單元測試,可以保證自動測試只能測試單一元件出錯的時候,無法檢驗出元件之間互動所產生的錯誤。

要是有人抗議單元測試有很多錯誤沒有測試出來,提出那就不需要寫自動測試了的建議。


上一篇
[Day 15] 聊難以維護商業邏輯的最後一天!
下一篇
[Day 17] 再談談難以維護的自動測試
系列文
如何用 Laravel 撰寫難以維護的專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言