iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

你就是都不寫測試才會沒時間:Kuma 的 30 天 Unit Test 手把手教學,從理論到實戰 (Java 篇) 系列

「我們因為沒時間,所以不做單元測試。」

沒這種事!你們就是因為都不做單元測試,才會老是沒時間。

沒時間重構,沒時間思考設計,沒時間Scrum,沒時間好好把前後端職責講清楚…。生活中有太多太多的沒時間,但總歸一句,你連最基本的「功能需求」都不能在寫完功能的當下保證了,你要怎麼做後面那些「高端」的事情?你要怎麼真正「快得起來」?

本系列從基本的單元測試基本結構開始,慢慢帶入架構、設計、與模式等概念,讓讀者可以藉由閱讀本系列文章,慢慢了解單元測試的多種功能、重要性、與不同場景下較適合的寫法。最終可以嗅出壞味道,並「重構」成可讀性較高、耦合度較低的程式。

鐵人鍊成 | 共 30 篇文章 | 43 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 01 「科學 v.s. 數學」前言

筆者從業數年,面試過不少程式開發者。每當問到對方是否有做單元測試時,絕大多數的面試者總會說: 「我知道測試很重要,但我們沒時間寫測試。」 「我知道測試可以避免不...

2021-09-01 ‧ 由 Kuma 分享
DAY 2

Day 02 「住手!你想搞死 QA 嗎?」 單元測試是測試還是功能?

今天在聊測試之前,我們要先聊 Scrum 與敏捷開發。為什麽?等會你就知道了。 烽火下的 Scrum 思考一下以下兩句話:「我們這個 Sprint 先做功能,下...

2021-09-02 ‧ 由 Kuma 分享
DAY 3

Day 03 「要開始囉!」單元測試的起手式:人生第一個單元測試

終於要開始了:「說到底,單元測試怎麼做?」 單元測試 單元測試要測的是一個邏輯單元功能是否正確。這短短的一句話,其實就有兩個蠻常爭議的點:1) 什麼叫一個單元,...

2021-09-03 ‧ 由 Kuma 分享
DAY 4

Day 04 「樹頭顧乎哉」測試金字塔 之 Unit Test v.s. Integration Test

今天先來聊聊測試的規模與邊界。 測試金字塔 說到單元測試,那就一定要提到 Mike Cohn 在書中提到,有名的「測試金字塔」: 圖片轉自 Martin Fo...

2021-09-04 ‧ 由 Kuma 分享
DAY 5

Day 05 「乖,聽話給你吃糖果!」測試與依賴:測資料 之 用資料控制依賴

聊完測試金字塔,讓我們回到單元測試。 在這篇中,我們會從單元測試的控制與撰寫開始,一路帶到單元測試與「單一職責原則(Single Responsibility...

2021-09-05 ‧ 由 Kuma 分享
DAY 6

Day 06 「不聽話就換掉」測試與依賴:測資料 之 用 Mock 工具控制依賴

2021 IT 鐵人 Day 06 測試與依賴:測資料 之 用 Mock 工具控制依賴 今天要來聊的是另一種控制依賴的方法:Mock 工具。 不受控的依賴 讀者...

2021-09-06 ‧ 由 Kuma 分享
DAY 7

Day 07 「Tell. Don't Ask.」 測試與依賴:測行為

2021 IT 鐵人 Day 07 測試與依賴:測行為 今天來聊「不回傳值的命令」的使用場景與測試。 Query 與 Command 程式行為,大多不外乎 Qu...

2021-09-07 ‧ 由 Kuma 分享
DAY 8

Day 08 「說好的射後不理呢?」多線程環境下的單元測試

今天來聊聊「多線程」的單元測試。 多線程測試的困難點 當系統成長到一個程度,效能的重要性就會慢慢浮現,隨著使用者數量越來越大,「效能」的影響也會變大,最終變成系...

2021-09-08 ‧ 由 Kuma 分享
DAY 9

Day 09 「世事難預料」單元測試與例外處理

世事難預料,寫程式總會遇到例外。例外該怎麼處理,邏輯該怎麼驗測,本篇將進行討論。 圖片擷取自網路 「例外處理有什麼難的。不過就是 try-catch 嗎?」...

2021-09-09 ‧ 由 Kuma 分享
DAY 10

Day 10 「如入鮑魚之肆」從測試聞出 code smell:萬惡之源 ---「重複」

Day 10 「如入鮑魚之肆」從測試聞出 code smell:萬惡之源 ---「重複」 好好寫測試,輕鬆聞出 Code Smell 孔子說:「如入鮑魚之肆,久...

2021-09-10 ‧ 由 Kuma 分享