剛剛看到一篇單元測試相關的筆記,對裡面提到的內容連連稱是,馬上轉貼上來給大家:
《Python 工匠》筆記(二)對「單元測試」的看法與建議 - Code and Me

大家都說單元測試好,但到處都看不到。我們很常聽到一些不寫測試的理由:東西很簡單不用寫啦、東西太複雜寫不了啦、沒時間啦…

(沒時間的可以左轉 你就是都不寫測試才會沒時間

而這篇的筆記整理了《Python 工匠》裡關於單元測試的五個重要理解

  1. 寫單元測試不是浪費時間:寫單元測試可以省下的時間主要在把東西改壞 Dedug 的時間,還可以給我們重構的勇氣

  2. 不要總想著「補」測試:補測試其實代表我們覺得測試是額外的、事後的,但其實我們完全可以邊開發邊寫測試,還可以幫助我們改進設計

  3. 難測試的程式就是爛程式:當我們覺得很難測試的時候,應該要重構程式碼,而不是降低測試的門檻

  4. 像應用程式一樣對待測試程式:不要把測試的程式碼當成附屬品,因為測試寫太爛也是一種負債

  5. 避免教條主義:很多觀點都有狂熱追隨者,例如「只有 TDD 才是真的在寫測試!」。去了解,但不要盲從

每一項在這篇筆記中都有直接好懂的說明,但我個人最喜歡的是「5. 避免教條主義」這項。讓我節錄這篇文章的其中一段:

說起來很奇怪,在單元測試領域有非常多的理論與說法。人們總是樂於發表種對單元測試的見解,在文章、演講以及與同事的交談中,你常常能聽到這些話:

  • 「只有 TDD 才是寫單元測試的正確方式,其他都不行!」
  • 「TDD 已死,測試萬歲!」
  • 「單元測試應該純粹,任何相依都應該被 mock 掉!」
  • 「mock 是一種垃圾技術,mock 越多,表示程式越爛!」
  • 「只有專案測試覆蓋率達到 100%,才算是合格!」 ……

看到書中的這段,我真的會笑死XDDD —— 因為這個「怪現象」竟是如此的真實。

哪怕還沒有開始寫測試之前,我就已經看過不少這類言論。說真的,這些言論——或者說「信仰」——恐怕或多或少增加了想要入門測試的人,在心理上的門檻。

好像你不把測試做到 100 分、盡善盡美,就乾脆不要寫測試了——我覺得這不是一種健康的姿態。

針對這現象,作者認為:

這些觀點各自都有許多狂熱的追隨者,但我有個建議:你應該了解這些理論,越多越好,但是千萬不要陷入教條主義

因為在現實世界裡,每個人參與的專案千差萬別,別人的理論不一定適用於你,如果盲目遵從,反而會給自己增加麻煩。

那麼,今天的轉貼就到這邊。我們明天見~